私は現在、サイトのいくつかの検索機能にPHPCrawlerを使用しています。一部のページ要素をインデックスから削除する必要があります。
たとえば、私は以下を使用しました:
$doc_body = preg_replace('/<li>(.*?)<\/li>/is', "", $doc_body);
結果にリストが必要ないため、リストを削除します。これは、正しく機能します。
さて、私が削除する必要があるもう一つのことは次のとおりです:
<div class="example">all contents within</div>
だからこれのために私は試しました:
$doc_body = preg_replace('/<div(.*?)class="(.*?)example(.*?)"(.*?)>(.*?)<\/div>/is', "", $doc_body);
すべてのページにdivクラスの例があるとは限らないため、エラーが発生します。だから私はそれを次のコードで適応させました:
if(strpos($doc_body,'<div class="example">')){
$doc_body = preg_replace('/<div(.*?)class="(.*?)example(.*?)"(.*?)>(.*?)<\/div>/is', "", $doc_body);
}
残念ながら、それも機能しません!エラーは発生しませんが、結果からすべてのコンテンツが削除されるわけではありません。
phpcrawlerまたはDomdocumentのいずれかを使用するのはこれが初めてです...ここでの私の問題がそれらと関係があるかどうかはわかりませんが?