我有一個我想要編輯的html頁面。我想刪除以下某個部分:用PHP刪除HTML部分
<ul class="agentDetail">
........
.......
........
</ul>
我希望能夠刪除它們之間的標籤及其所有內容。這個想法是編輯一個頁面並重新顯示它,減去一些我不想看到的數據(因此刪除了一些部分)。
我該如何在php中做到這一點?
我有一個我想要編輯的html頁面。我想刪除以下某個部分:用PHP刪除HTML部分
<ul class="agentDetail">
........
.......
........
</ul>
我希望能夠刪除它們之間的標籤及其所有內容。這個想法是編輯一個頁面並重新顯示它,減去一些我不想看到的數據(因此刪除了一些部分)。
我該如何在php中做到這一點?
我會推薦將代碼解析爲XML,然後使用XPath來取消/選擇您需要的節點。這裏有一個出發點:
$dom = getDom("http://www.stackoverflow.com");
parseDom($dom);
function getDom($url)
{
$contentUtf8 = $this->fetchDataFromUrl($url);
$htmlData = mb_convert_encoding($contentUtf8, 'HTML-ENTITIES', "UTF-8");
$dom = new DomDocument('1.0', 'utf-8');
$dom->substituteEntities = false;
$dom->preserveWhitespace = false;
@$dom->loadHTML($htmlData);
return $dom;
}
function parseDom($dom)
{
$xpath = new DOMXPath($dom);
$nodes = $xpath->query("//ul[@class='agentDetail']");
// manipulate nodes here...
}
查看['libxml_use_internal_errors'](http ://de3.php.net/manual/en/function.libxml-use-internal-errors.php)替代抑制loadHTML錯誤 – Gordon 2010-07-16 09:07:34
您是直接託管此頁面還是正在讀取它到php,並在解析後回顯它?在前一種情況下,你可以給它一個.php
擴展和內<? if(0): ?>
<? endif; ?>
塊
<?php if(0): ?>
<ul class="agentDetail">
........
.......
........
</ul>
<?php endif; ?>
的
可能重複附上那些線[PHP的整潔:去除體內的鏈接和風格標籤](http://stackoverflow.com/問題/ 3053349/php-tidy-remove-link-and-style-tags-inside-body) - 你應該可以通過稍微修改DOM解決方案來解決這個問題 – Gordon 2010-07-16 08:53:24