我正在尝试preg_replace图片链接,但前提是它以.jpg,.gif,.png结尾。
http://exampel.com/1/themes/b2/images/4/image1.jpg
到
<img src="http://exampel.com/1/themes/b2/images/4/image1.jpg" alt="" width="" height="" />
有人可以帮助我吗?
答案 0 :(得分:6)
不确定它是否会完全回答您的问题,但您至少应该能够将此作为基础......
这样的事情:
$str = <<<TEST
here is
some text and an image http://exampel.com/1/themes/b2/images/4/image1.jpg ?
and some other http://exampel.com/1/themes/b2/images/4/image1.gif and
a link that should not be replaced : http://exampel.com/test.html !
TEST;
$output = preg_replace('#(http://([^\s]*)\.(jpg|gif|png))#',
'<img src="$1" alt="" width="" height="" />', $str);
var_dump($output);
在我的例子中,我得到以下输出:
string 'here is
some text and an image <img src="http://exampel.com/1/themes/b2/images/4/image1.jpg" alt="" width="" height="" /> ?
and some other <img src="http://exampel.com/1/themes/b2/images/4/image1.gif" alt="" width="" height="" /> and
a link that should not be replaced : http://exampel.com/test.html !' (length=301)
两个图像链接已被替换,没有其他任何内容被触及 - 特别是非图像链接。
我使用的正则表达匹配:
http://
[^\s]*
\.
(jpg|gif|png)
然后,所有匹配的字符串都会被注入<img>
标记。