2011-10-10 52 views
1

我有一個我想編輯的HTML頁面。我想刪除.html文件的某個部分,例如。使用PHP刪除.html文件的一部分

<div id="gg"> 
...... 
...... 
</div> 

我該怎麼做?

+0

你是說一次,或連續的請求(和/或某些條件)? –

回答

1
$file = file_get_contents("index.html"); 
$file = preg_replace('/<div id="gg">.*?<\/div>/im', '' $file); 
file_put_contents($file); 

我沒有測試過這段代碼。

注意:嵌套divs中斷html結構。

+0

請參閱:http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 –

+0

如果在那裏有一個嵌套的'div'會發生什麼? – imm

+0

我知道,但在簡單的任務正則表達式是好的。嵌套div打破HTML。感謝您的建議。 – neworld

1

使用XML(或HTML)解析器可能會帶來一些好運。用於PHP 5的This one看起來非常易於使用,並提供了一種通過ID查找特定元素並將其內容設置爲空字符串的機制。

3

我會建議使用PHP的DOM庫:

$dom = new DOMDocument; 
$dom->loadHTML('<html string />'); // Or $dom->loadHTMLFile('file_name.html'); 

$xpath = new DOMXPath($dom); 
$nodes = $xpath->query('//div[id="gg"]'); 
if($nodes->length) 
    $nodes[0]->parentNode->removeChild($nodes[0]); 

$dom->saveHTML(); // Or $dom->saveHTMLFile('file_name.html');