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

前端之家收集整理的这篇文章主要介绍了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] => 轻音乐 )


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

猜你在找的PHP相关文章