2012-09-04 31 views
0

我的PHP腳本可以獲取從一個DIV ID的內容,但什麼是過濾此獲取數據,並排除其內容具有這個div ID <div id="navbar" class="n">我有這個代碼,但其嘗試的方法無法正常工作排除內容從一個DIV ID

$regex = '#\<div id="navbar"\>(.+?)\<\/div\>#s'; 
preg_match($regex, $displaybody, $matches); 
$match = $matches[0]; 
echo "$match";` 

要獲取我正在使用HTML DOM解析器的內容。

+0

你是怎麼做的解析?你可能可以寫一個規則,而不必使用正則表達式。 – Stegrex

回答

1

使用正則表達式來解析html通常是bad idea。你可以選擇DOM的節點就好了:

$input = '<html> <body> some content <span class="a">b</span> <div id="navbar" class="n">find me <span class="a">b</span></div> </html>'; 

$doc = new DOMDocument; 
$doc->loadHTML($input); 
$navbar = $doc->getElementById('navbar'); 

$innerhtml = ''; 
foreach ($navbar->childNodes as $cn) { 
    $innerhtml .= $doc->saveHTML($cn); 
} 
print $innerhtml; 
+0

我不知道爲什麼它不在這裏工作我已經包括這個http://sourceforge.net/projects/simplehtmldom/files/現在要做什麼? – user1642787

+0

simpledom與DOM擴展不一樣,您應該可以像'new siple_html_dom()'的拳頭參數一樣爲'DOMDocument :: loadHTML'使用相同的輸入。 – complex857

+0

我不知道哪裏出了問題,它只顯示一個空白頁面。你可以編輯你的代碼嗎?謝謝 – user1642787