打印

[php] 怎样用正则提取文章中的链接并替换

我想把链接提取出来然后加上我的跳转网址“gourl.php?url=提取出来的网址”,然后这里的$bb部分怎么写呢?

<?php
function match_links($document) {   
    $aa="'<\s*a\s.*?href\s*=\s*([\"\'])?(?(1)(.*?)\\1|([^\s\>]+))[^>]*>?(.*?)</a>'isx";                        
       $bb=???;   
       $cc = preg_replace($aa,$bb,$document)

    return $cc;
}

echo match_links($body);
?>
try:
复制内容到剪贴板
代码:
function match_links($document) {
    $aa="/(<\s*a\s.*?href\s*=\s*([\"\'])?(?(1)(.*?)\\1|([^\s\>]+))[^>]*>?(.*?)</a>)/isx";
    $bb="gourl.php?url=$1";
    $cc = preg_replace($aa,$bb,$document);
    return $cc;
}
银子博客
经典站长QQ群:16719484
第三届经典论坛灌水王选举(12月1日-12月31日) 敬请期待
刚才的那个正则不匹配

试试这个
复制内容到剪贴板
代码:
<?php
function match_links($document) {
    $aa="/<a\s+href\s*=s*\'?\"?(.+?)\'?\"?>/is";
    $bb="gourl.php?url=$1";
    $cc = preg_replace($aa,$bb,$document);
    return $cc;
}
print_r(match_links('<a href="www.google.cn/test.php?id=1">'));
?>
银子博客
经典站长QQ群:16719484
第三届经典论坛灌水王选举(12月1日-12月31日) 敬请期待
谢谢斑竹详尽的解答
还有一个问题想问一下
如果这个链接是这样的格式,怎样提取呢,就是前面后面没有引号("或')的:
<p><a class="aa" href=http://www.abc.cn target=_blank>http://www.abc.cn</a></p>

[ 本帖最后由 paradjanov 于 2008-9-8 19:53 编辑 ]

TOP

还在为头像烦恼?还在为不能关注好友动态烦忧?快来蓝色理想家园吧!
匹配href=开头,空格结尾的字符串
复制内容到剪贴板
代码:
/href=(\S+)\s/is
圆通快递是垃圾!

TOP

<a onclick>就不算是有链接呢?

TOP