【问题标题】:PHP Regex match all HTML tagsPHP 正则表达式匹配所有 HTML 标签
【发布时间】:2009-08-18 08:16:13
【问题描述】:

我正在阅读包含 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>

我只想根据必须包含此 (http://www.example.com/search?la=en&q=) 的 href 标记读取每个出现的标记 TEXT。

有什么想法吗?

【问题讨论】:

    标签: php html regex


    【解决方案1】:

    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
    }
    

    【讨论】:

      【解决方案2】:

      如果您正在阅读的 HTML 页面非常有规律(例如,根据可预测的模式由机器生成),则可以使用以下方法:

      preg_match('|<a\s+href="http://www.example.com/search\?la=en&q=(\w+)"\s*>\1</a>|', $page)
      

      但如果它变得比这更复杂,正则表达式可能不足以完成这项工作 - 您最好使用完整的 HTML 解析器来提取链接并逐一检查以找到你想要的文字。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-15
        • 1970-01-01
        • 2015-03-08
        • 2011-12-27
        • 2014-08-29
        • 1970-01-01
        相关资源
        最近更新 更多