1

我有一个字符串,它回显到当前文档中,但是,我只想在<body>.

$string = '
    <html>
    <head>
    <title>Title</title>
    </head>
    <body>
        <!-- leave any tag within the body -->
    </body>
    </html>
';

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Title</title>
</head>
<body>
    <?php echo $string; // new valid content  ?>
    <!-- more content -->
</body>
</html>
4

2 回答 2

0

来自 php.net;

<?php
function strip_selected_tags($str, $tags = array(), $stripContent = false)
{
    preg_match_all("/<([^>]+)>/i", $tags, $allTags, PREG_PATTERN_ORDER);
    foreach ($allTags[1] as $tag) {
        $replace = "%(<$tag.*?>)(.*?)(<\/$tag.*?>)%is";
        $replace2 = "%(<$tag.*?>)%is";
        echo $replace;
        if ($stripContent) {
            $str = preg_replace($replace,'',$str);
            $str = preg_replace($replace2,'',$str);
        }
            $str = preg_replace($replace,'${2}',$str);
            $str = preg_replace($replace2,'${2}',$str);
    }
    return $str;
}
?>
于 2011-03-16T02:43:16.130 回答
0

您可以搜索<body>标签并添加 6 以找到起点,然后搜索</body>以找到终点,然后对字符串执行 substr。您需要确保标签中没有任何属性。如果您想真正确保正确完成此操作,请找到<body并找到下一个>并添加 1 作为起点。

于 2011-03-16T02:34:04.157 回答