PHP正则表达式提取html超链接中的href地址

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP正则表达式提取html超链接中的href地址相关的知识,希望对你有一定的参考价值。

php的正则表达式相关函数,实现提取html超链接<a href="地址"></a>中的地址

 

<?php

$preg=‘/<a .*?href="(.*?)".*?>/is‘;

$str =‘<a href="链接1">URLNAME</a>文本段1<a href="链接2" target="_blank">URLNAME</a>文本段2<a  target="_blank" href="链接3">URLNAME</a>...文本段n‘;

preg_match_all($preg,$str,$match);//在$str中搜索匹配所有符合$preg加入$match中

for($i=0;$i<count($match[1]);$i++)//逐个输出超链接地址

{

  echo $match[1][$i]."<br />";

}

?>

 

最终输出:

链接1<br />链接2<br />链接3<br />

 

 

附一个

PHP的正则表达式提取图片地址的代码。

 

$str=‘<p style="padding: 0px; margin-top: 0px; margin-bottom: 0px; line-height: 200%;"><img border="0" src="upfiles/2009/07/1246430143_4.jpg" /></p><p style="padding: 0px; margin-top: 0px; margin-bottom: 0px; line-height: 200%;"><img border="0" src="upfiles/2009/07/1246430143_3.jpg" /></p><p style="padding: 0px; margin-top: 0px; margin-bottom: 0px; line-height: 200%;"><img border="0" src="upfiles/2009/07/1246430143_1.jpg" /></p>‘; 

$pattern="/<[img|IMG].*?src=[‘|"](.*?(?:[.gif|.jpg]))[‘|"].*?[/]?>/"; 

preg_match_all($pattern,$str,$match); 

print_r($match);

以上是关于PHP正则表达式提取html超链接中的href地址的主要内容,如果未能解决你的问题,请参考以下文章

PHP正则表达式提取超链接及其标题

php高手请进:正则提取超链接中的网址和标题,如果兼顾有双引号和单引号或没有引号的超链接?

PHP 正则表达式匹配 img ,PHP 正则提取或替换图片 img 标记中的任意属性。

请问正则表达式如何过滤超链接和提取链接

正则表达式实例

用C#怎么提取a标签的超链接?