PHP的正则表达式匹配所有的HTML标签
问题描述:
我正在阅读包含一个HTML页面的一些细节,我正在寻找每一个字符串的出现,该字符串带有一个标签,我只想读取该字符串。PHP的正则表达式匹配所有的HTML标签
例子:
<a href="http://www.example.com/search?la=en&q=javascript">javascript</a>
<a href="http://www.example.com/search?la=en&q=PHP">PHP</a>
我只是想读HREF标签的基础上必须包含这个(http://www.example.com/search?la=en&q=)标签上的文字每次发生。
有什么想法?
答
SimpleHtmlDom例子(是不是很漂亮吗?):
// Create DOM from URL or file
$html = file_get_html('http://www.google.com/');
// Find all links
foreach($html->find('a') as $element) {
echo $element->href . '<br>';
echo $element->text; //this is what you want
}
答
如果您正在阅读的HTML页面非常定期(例如,机器生成根据预测的模式),像这样的工作:
preg_match('|<a\s+href="http://www.example.com/search\?la=en&q=(\w+)"\s*>\1</a>|', $page)
但是,如果它得到任何比这更复杂,正则表达式可能不会对工作不够 - 你会更好使用完整的HTML解析器来提取的联系,并检查他们一个一个一个找到你想要的文字。
我相信你应该逃避网址中的点? http:// www \ .example \ .com / – 2009-08-17 11:32:13