preg_replace网址,但不是图片

时间:2013-01-30 20:54:09

标签: php preg-replace

$title =  $_POST['title'];

$post = stripslashes($_POST['TextArea']);

$link = preg_replace('"(http://www\S+)"','<a href="$1">$1</a>', $post);

echo $link;

提交表单后,上面的脚本替换textarea中的所有链接 并且图像的结果将被打破。

有没有办法替换链接而不是图像?

虽然url工作得很完美,但浏览器中的图像结果是

<img src="<a href="http://...myimage.jpg"">http://.../myimage.jpg"</a> height="150" width="150">

enter image description here enter image description here

谢谢

2 个答案:

答案 0 :(得分:4)

preg_replace('"(?<!src=[\"\'])(http://www\S+)"','<a href="$1">$1</a>', $text)

这只会转换http://wwwsrc="之前没有的src='个链接。

答案 1 :(得分:0)

preg_replace('/(?<!src=[\"\'])(http(s)?:\/\/(www\.)?[\/a-zA-Z0-9%\?\.\-]*)(?=$|<|\s)/','<a href="$1">$1</a>', $text);

这是正确的方法,因为以前的解决方案在必要时没有完成网址