我正在阅读包含 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 标记的基础上阅读每一个标记TEXT,标记必须包含此标记(http://www.example.com/search?la=en&q=)。
有什么想法吗?
答案 0 :(得分:4)
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
}
答案 1 :(得分:0)
如果您正在阅读的HTML页面非常规则(例如,根据可预测的模式生成机器),那么这样的事情就可以了:
preg_match('|<a\s+href="http://www.example.com/search\?la=en&q=(\w+)"\s*>\1</a>|', $page)
但如果它变得更复杂,正则表达式可能不足以完成这项工作 - 你最好使用完整的HTML解析器来提取链接并逐个检查它们以查找你想要的文字。