2011-04-29 33 views
0

我想查找DIV中的內容。我只想指定DIV的ID;其餘部分根據preg_match自動調整。 例如: -如何使用PHP正則表達式查找內容

<div id="midbuttonarea" etc...>some text...</div> 
+0

有什麼東西可以阻止你使用phps DOM類嗎?這會讓事情變得更容易。 – Yoshi 2011-04-29 07:17:54

回答

1

你更可能使用HTML解析器來解析HTML,而不是正則表達式來得到一個好的結果。用正則表達式解析HTML是非常困難的,結果可能不是很可靠。

查看此問題的接受答案:How do you parse and process HTML/XML in PHP?瞭解如何解決此問題的一些建議。

+0

它可以在php的正則表達式中使用。 – rajan 2011-04-29 07:27:56

1

布倫頓是對的。總之,在這裏你必須:

<?php 
    function findDivInnerHtml($html, $id){ 
     preg_match("/<div .* id=\"{$id}\" .*>(.*)<\\/div>/i", $html, $matches); 
     return $matches[1]; 
    } 
?> 

使用範例:

<?php 
    $html = '<div id="other"> xxx </div> <div id="midbuttonarea" etc...>some text...</div> '; 
    $innerHTML = findDivInnerHtml($html, 'midbuttonarea');  
    echo $innerHTML; //outputs "some text..." 
?> 

希望這有助於。

+0

忘了告訴你'$ html'不必有換行符。你可以很容易地用'str_replace'將它們刪除第一個 – 2011-04-29 07:33:59

+0

感謝您的幫助,它的工作正常...感謝很多 – rajan 2011-04-29 07:57:28

+0

太棒了!請將我的答案標記爲最佳解決方案 – 2011-04-29 07:59:54