当前位置: 我爱LAMP > PHP > 文章正文

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

发表于 2010-01-24 15:34    文章来源:互联网

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

//HTML
$str = ‘<a id=”top8″ href=”http://list.mp3.baidu.com/song/A.htm?top8″ target=”_top”>歌曲列表</a><br><a target=”_blank” id=”bp” href=”http://list.mp3.baidu.com/list/bangping.html”>中文金曲榜</a><br><td nowrap=”nowrap”>&#8226;&nbsp;<a id=”top19″ href=”qingyinyue.html?top19″ 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.52lamp.com.cn/detail/5908.html

喜欢我爱LAMP – lamp开发程序交流学习平台的文章,那就通过 RSS Feed 功能订阅阅读吧!