请教使用正则preg_match_all取得页面中的全部链接

pwtitle 2005-08-17 12:28:25
如何使用一句preg_match_all取得一个页面中的全部连接地址。

$pattern = '/href\s*=\s*("|\')?([^\s"\'].)*("|\')?(.*)>/iU';
preg_match_all($pattern,$content,$a,PREG_SET_ORDER);

echo "<Pre>";
print_r($a);

...全文
308 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zairwolf 2005-08-19
  • 打赏
  • 举报
回复
飞花的好像正确。
zairwolf 2005-08-19
  • 打赏
  • 举报
回复
<a href = asdfasfas target="asdfasdf">"sadfsf"asdfasdf</a>

这种链接连语法都不很符合吧。
thunderx 2005-08-19
  • 打赏
  • 举报
回复
$pattern = '/<a\s.*href\s=([\d\w\W]+)[ |].*>.*<\/a>/Use';
preg_match_all($pattern,$content,$a);
echo $a[1][0];
opqhjb_2002 2005-08-19
  • 打赏
  • 举报
回复
确实是这样的
blackangel 2005-08-18
  • 打赏
  • 举报
回复
我觉得如果仅仅提取<a></a>的链接,用dom+php结合做效果更好
pwtitle 2005-08-17
  • 打赏
  • 举报
回复
$pattern = "/href\s*=\s*[\"|'](.*)[\"|'].*>/iU";

这样的对大部分可用,但对

<a href =as234241231234dfasfas target="asdfasdf">"sadfsf"asdfasdf</a>
这样的连接格式就取不到了。高手,谁能指点一下?
pwtitle 2005-08-17
  • 打赏
  • 举报
回复
我写的这一句总有问题。对
<a href = 'asdfasfas' target="asdfasdf">"sadfsf"asdfasdf</a>
<a href = asdfasfas target="asdfasdf">"sadfsf"asdfasdf</a>
这样的总是会把target部分也取出来。
johnpanq 2005-08-17
  • 打赏
  • 举报
回复
$pattern = '/href\s*=\s*["|\']?([^\s"\'>]*)/i';

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧