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

Posted

tags:

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

有这么一段html,比较不规则的,如果要提取其中的链接地址和链接名称,怎么弄?

//HTML
$str = ‘‘<a id="top8" href="http://list.mp3.baidu.com/song/A.htm?top8" class="p14" target="_top">歌曲列表</a><br><a target="_blank" id="bp" href="http://list.mp3.baidu.com/list/bangping.html" class="p14">中文金曲榜</a><br><td nowrap="nowrap">&#8226;&nbsp;<a id="top19" href="qingyinyue.html?top19" class="p14" target="_top">轻音乐</a></td>‘‘;

利用正则表达式是最简单的,其它的办法,偶米去想。。。

$pat = ‘‘/<a(.*?)href="(.*?)"(.*?)>(.*?)<\/a>/i‘‘;
preg_match_all($pat, $str, $m);

输出方法:

print_r($m[2]);
print_r($m[4]);

或者:
for($i=0;$i<count($m[2]) ;$i++ ){
    echo ‘‘<li><a href="‘‘.$_SERVER[‘‘php_SELF‘‘].‘‘?url=‘‘.$m[2][$i].‘‘">‘‘.$m[4][$i].‘‘</a>‘‘;
}

显示结果是:

Array ( [0] => http://list.mp3.baidu.com/song/A.htm?top8 [1] => http://list.mp3.baidu.com/list/bangping.html [2] => qingyinyue.html?top19 ) Array ( [0] => 歌曲列表 [1] => 中文金曲榜 [2] => 轻音乐 )

于是,我们要采集某个网站的标题及链接地址方法就出来了。。。自己套用吧。。。

转载自:http://www.aspnetjia.com

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

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

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

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

正则表达式(PHP)提取包含链接的句子

通过 Java 正则表达式提取 semver 版本字符串的片段

正则表达式部分提取php代码((数组定义))