使用PHP修改超链接

nei*_*eil 1 php url hyperlink

我正在使用正则表达式将博客评论中的URL转换为可点击的超链接.但是,我也想做相反的事情:

由于我允许某些html标签(但不允许<a>),如果有人输入超链接,我想改为:

<a href="http://www.example.com">My Link</a>
Run Code Online (Sandbox Code Playgroud)

我的链接:http://www.example.com

生成的代码是:

<p><b>My Link:</b> <a href="http://www.example.com" rel="nofollow">http://www.example.com</a></p>
Run Code Online (Sandbox Code Playgroud)

谢谢!

met*_*ras 5

试试这个.

function find_links($url){
    $pattern = '/<a (.*?)href="(.*?)\/\/(.*?)"(.*?)>(.*?)<\/a>/i';
    $url = preg_replace_callback($pattern, 'process_links',$url);
    return $url;
}

function process_links($m){
    return "{$m[5]} <a href=\"{$m[2]}//{$m[3]}\" rel=\"nofollow\">{$m[2]}//{$m[3]}</a>";
}

$links = find_links('<a href="http://www.example.com">My Link</a>');
Run Code Online (Sandbox Code Playgroud)

编辑:哎呀!我没有完全回答OP的问题.