2011-04-29 138 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