在 PHP 中查找具有相同模式的类似链接 HTML string [closed]

Find similar links in PHP with same pattern in HTML string [closed]

提问人:Themer 提问时间:11/15/2023 更新时间:11/15/2023 访问量:42

问:


想改进这个问题吗?更新问题,使其仅通过编辑这篇文章来关注一个问题。

4天前关闭。

我正在用 curl 抓取一个页面,HTML 有随机数量的相似链接,有时是 3 个链接,4 个链接,有时是 6 个链接,所以我只需要抓取数组中的这些相似链接

例如,链接如下所示:

 https://somesite.com/some.php?var=aaa&whatever
 https://somesite.com/some.php?var=bbbbbbb&something
 https://somesite.com/some.php?var=sdfdsfdsf

其中 URL 的以下部分保持不变 https://somesite.com/some.php?var=

所以我希望返回的最终数组应该包含上述所有链接。.

php 正则表达式 预匹配

评论

0赞 hassan 11/15/2023
“类似链接”这个词太宽泛了,你到底是什么意思?那些只共享同一主机的链接?还是主机和脚本?还是主机和脚本以及一些查询参数?...等
0赞 user3783243 11/15/2023
这回答了你的问题吗?如何在 PHP 中解析和处理 HTML/XML?

答:

0赞 Themer 11/15/2023 #1

谢谢哈桑,我通过搜索 ahref 的标题找到了一个对我有用的函数。

function linkExtractor($html) {
     $linkArray = array();
     if(preg_match_all('/<a\s+.*?href=[\"\']?([^\"\' >]*)[\"\']?[^>]*>(.*?)<\/a>/i', $html, $matches, PREG_SET_ORDER)){
         foreach ($matches as $match) {
            array_push($linkArray, array($match[1], $match[2]));
         }
      }
      return $linkArray;
}

评论

0赞 user3783243 11/15/2023
别这样。使用解析器,其全部目的是提取数据。