1
我目前使用PHPCrawler進行網站上的某些搜索功能。我需要刪除一些頁面元素被索引。如何使用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);
因爲也許不是每個頁面都有股利類產生一個錯誤例。 所以我用下面的代碼將它改編:
if(strpos($doc_body,'<div class="example">')){
$doc_body = preg_replace('/<div(.*?)class="(.*?)example(.*?)"(.*?)>(.*?)<\/div>/is', "", $doc_body);
}
不幸也不管用!它不會產生錯誤,但不會刪除結果中的所有內容。
這是我第一次使用phpcrawler或Domdocument ......雖然我不確定這裏的問題與他們有什麼關係?
很好的答案......感謝您指點我在正確的方向。下面的發生是我的問題的具體解決方案,但熟悉xpath是要走的路:'foreach($ xpath-> query(「// div [@ class ='example']」)as $ node) {\t \t $ node-> parentNode-> removeChild($ node);' – absentx
是的,對不起。自從我實現了DOMDocument以來已經有一段時間了。我已經更新了我的答案。 – Daniel