将文本中的链接更改为链接而不更改html标记

时间:2016-05-17 05:10:16

标签: php regex

我编写了一些代码,用于更改指向链接的文本链接,但它也会将src标记的img属性更改为链接,如

<img src="some url"/><br>
http://google.com<br>
http://beezfeed.cu.ma<br>

这里我的代码将其更改为

<img src="<a href="some url">some url</a>"/><br>
<a href="http://google.com">http://google.com</a><br>
<a href="http://beezfeed.cu.ma">http://beezfeed.cu.ma</a><br>

我希望它留下img标签,只用文本做那件事。这是我的代码

function make_links_clickable($text){
    return preg_replace('!(((f|ht)tp(s)?://)[-a-zA-Zа-яА-Я()0-9@:%_+.~#? &;//=]+)!i', '<a href="$1">$1</a>', $text);
 }

1 个答案:

答案 0 :(得分:0)

尝试explode()然后删除html标记以避免使用img标记

$str = '<img src="some url"/><br>
http://google.com<br>
http://beezfeed.cu.ma<br>';
$arr = explode('<br>', $str);
foreach($arr as $a){
    if(!empty($a)){
        $a = strip_tags($a);
        echo '<a href="'.$a.'">'.$a.'</a>';
    }
}