【问题标题】:PHP: find text between href='' tag [duplicate]PHP:在href =''标签之间查找文本[重复]
【发布时间】:2012-08-29 01:43:52
【问题描述】:

可能重复:
php regex to get string inside href tag

我有一个文本文件,其中多次出现 href 标记。

我希望得到这些内容

href='...'
并将其打印到屏幕上。

我怎样才能做到这一点?主要问题是编写正确的正则表达式。

【问题讨论】:

  • 抱歉,我刚刚注意到有一个相同的问题:stackoverflow.com/questions/4001328/…
  • 它只是没有结束,是吗?Die, Cthulu, Die 解析 HTML
  • 我已投票结束我自己的问题 :)
  • @EliasVanOotegem 在给定的 html 文件中抓取 href 并不是真正的“解析 html”,如果您知道 HTMl 的外观(例如链接的平面列表),它可能使用正则表达式比使用成熟的解析器更好。
  • @Cygal:在极少数情况下,您可能是对的,但正则表达式只能带您到此为止,解析字符串更加可靠

标签: php regex


【解决方案1】:
preg_match_all('|<a href="(.+)">|', $file_content, $matches);
print_r($matches);

未经测试,但应该可以工作

【讨论】:

    【解决方案2】:

    给你:

    $pageData = file_get_contents('your.txt');
    if(preg_match_all('/<a\s+href=["\']([^"\']+)["\']/i', $pageData, $links, PREG_PATTERN_ORDER))
        $all_hrefs = array_unique($links[1]);
    

    现在您在$all_href 中拥有所有唯一的href;

    如果你想显示它们:

    foreach($all_href as $href)
    {
    echo $href;
    }
    

    【讨论】:

    • +1 用于报价检查和不区分大小写
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-01
    • 1970-01-01
    相关资源
    最近更新 更多