0

HTML 文字列があり、そこからクラスが「tomove」であるすべての DIV を削除したいと考えています。

これはjQueryなどでクライアントサイドでやるのは些細なことですが、PHPでサーバーサイドでやりたいと思っています。

div がネストされている可能性があるため、単純な aegular 式は機能しません...

4

4 に答える 4

2

DOM オブジェクトと xPath を使用して DIV を削除できます。

/** UNTESTED **/
$doc = new DOMDocument();
$doc->loadHTMLFile($file);

$xpath = new DOMXpath($doc);
$elements = $xpath->query("*/div[@class='yourClasshere']");

foreach($elements as $e){
    $doc->removeChild($e);
}
$doc->saveHTMLFile($file);

必要に応じて、load from file と save to file を load from と save to string に置き換えることができます。

于 2012-10-12T12:57:42.977 に答える
-1

XML/HTML を解析するために決して正規表現を使用しようとしないでください。代わりに解析ライブラリを使用してください。どうやら、PHP 用のものはhttp://sourceforge.net/projects/simplehtmldom/files/です。

于 2012-10-12T12:46:44.187 に答える