0

上記のコードは正常に動作しています:

<?php

function clearPage($content, $class) {
$arr = array(
            '@^(.*?)<div class="'.$class.'">(.*?)</div>(.*?)$@i' => '<div class="'.$class.'">$2</div>'
            );

    return preg_replace(array_keys($arr), array_values($arr), $content);


}


$class = "something";
$content = "31xu1823y8<div class="something">Wanted</div>912u38u3"
$result = clearPage($content, $class);
echo $result;
?>

これは以下を出力します:

<div class="something">Wanted</div>

しかし、可変コンテンツを作成したいのは、ウェブサイトページのhtmlコードです。そこで、最後のコードを次のように変更します。

$class = "something";
$content = file_get_contents('index.php');
$result = clearPage($content, $class);
echo $result;

This outputs all the webpage! Why!?
4

1 に答える 1

0

正規表現または文字列マッチングを使用することは、HTML を解析するための最悪の方法です。

DOM を使用する必要があります: http://php.net/manual/en/book.dom.php

または次のようなサードパーティの dom ライブラリ: http://simplehtmldom.sourceforge.net/

于 2013-06-28T18:18:28.770 に答える