如何使用preg_replace替换排除的模式

时间:2012-02-02 09:11:35

标签: php preg-replace

我有一些文本包含html标签,我想用其他链接替换所有链接,但我想替换本地链接,而不是以http://开头 例如:

<a href="local_link">test link</a> 
    ==> <a href="local_link_to_be_replace?url=local_link">test link</a>
<a href="http://www.youtube.com">Video</a> 
    ==> <a href="http://www.youtube.com">Video</a>

我试试这个preg_replace但不能正常工作:

$exclude = '<a href=\"http://.*?';
$pattern = '<a href=\".*?';
$content=preg_replace("~(($exclude)?($pattern))~i",'<a href="/action.php?url=$4',$content);

谢谢!

1 个答案:

答案 0 :(得分:2)

这样的事情:

$content = preg_replace('#<a href="([^:]*)">#i', '<a href="/action.php?url=$1">', $content);