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 に答える