2011-08-16 24 views
-4

可能重复:
How to parse HTML with PHP?
crawling a html page using php?无法使用正则表达式捕获html标签!

我试着找到一种方法找到的HTML标记。

所以我试图用preg_match_all函数来查找html标签。

,这里是我用什么代码:

$code = "<div>This is a test</div>"; 
preg_match_all("/(<[^<>]+>)([^<>]+)(<[^<>]+>)/", 
$code, $matches); 
var_dump($matches); 

当我用这个代码,我尝试运行它..返回的页面

阵列(4){[0 ] => array(1){[0] => string(25)“ 这是一个测试 ”} [1] => array(1){[0] => string(5)“ ”} [ 2] => array(1){[0] => string(14)“这是一个测试”} [3] => array(1){[0] => string(6)“ ”}}

如您在阵列中看到了..没有检测<div></div>

你能帮助我吗? ,并告诉我确切的问题在哪里。

对不起,我的英语..

感谢,

+8

请勿使用正则表达式:http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags –

+0

@Corey Ogburn我想使用正则表达式这是必需的我想要做什么..感谢和抱歉 – Programmer4me

+0

@gpojd这个主题不使用正则表达式..正则表达式是我需要在我的网站做什么.. – Programmer4me

回答

2

请参阅:RegEx match open tags except XHTML self-contained tags

由于Bobince “解释”,你不应该使用正则表达式来解析HTML。

由于您使用PHP,您可以检出DOMDocument,它允许您安全地解析HTML。查看参考资料,尝试将DOMDocument整合到您的应用程序中,如果您仍有问题,请回答一个新问题或正确编辑此问题。

+0

这是一个合适的评论,但只是说“不使用正则表达式”而没有提供替代方案并不是一个答案。 – cspray

+1

bobince的替代方案是尝试XML解析器。 –

+0

我引用的问题有几十个选择。我添加了最后一行,以便SE不会将我的“简单答案”转换为评论。 –