php 正则查找 图片的src 并替换相应的src

在一串字符中查找图片src并替换成特定的src怎么输出正则匹配的结果,如:字符串:<p><imgheight="32"alt=""src="/TestDemo/Tpl/d... 在一串字符中查找图片src并替换成特定的src
怎么输出正则匹配的结果,
如:字符串:<p><img height="32" alt="" src="/TestDemo/Tpl/default/Public/Files/2010_09_04/1283591048.jpg" width="32" border="0" />来留言看看这的风景好吗 <img alt="" src="/TestDemo/Public/kindeditor/plugins/emoticons/13.gif" border="0" /></p>
正则匹配只匹配(1)/TestDemo/Tpl/default/Public/Files/2010_09_04/1283591048.jpg
不匹配(2)/TestDemo/Public/kindeditor/plugins/emoticons/13.gif这种。
就是只匹配图片上一级文件夹名是日期的 并替换成
(3)/TestDemo/Tpl/default/File/Uploads/2010_9_6/1283591048.jpg
把(1)种路径替换成(3)种
上面(3)路径也因该是全日期。。和(1)一样。 我一时大意 写错 了。。
展开
 我来答
蛋壳儿漂
2010-09-07 · TA获得超过1160个赞
知道小有建树答主
回答量:433
采纳率:0%
帮助的人:593万
展开全部
/TestDemo/Tpl/default/Public/Files/2010_09_04/1283591048.jpg转
/TestDemo/Tpl/default/File/Uploads/2010_9_6/1283591048.jpg
根据你题目里面举例的这种对比的需求,转换条件认为是
“/Public/Files/全日期/数字.jpg”形式的图片转换成
“/File/Uploads/紧缩日期/数字.jpg”形式的图片。如果实际你的需求有所不同,可以根据这个略微对正则做修改。代码替换部分如下:

$str1 = "<p><img height=\"32\" alt=\"\" src=\"/TestDemo/Tpl/default/Public/Files/2010_09_04/1283591048.jpg\" width=\"32\" border=\"0\" />来留言看看这的风景好吗 <img alt=\"\" src=\"/TestDemo/Public/kindeditor/plugins/emoticons/13.gif\" border=\"0\" /></p><img height=\"32\" alt=\"\" src=\"/TestDemo/Tpl/default/Public/Files/2010_12_01/88668866.jpg\" width=\"32\" border=\"0\" />";
//这里多举一个图片例子试试
$str2 = preg_replace("/(src=\"[^\"]*?)\/Public\/Files(\/\d{4}_)[0]?(\d{1,2}_)[0]?(\d{1,2}\/\d+[.](?:jpg|gif|bmp)\")/","$1/File/Uploads$2$3$4$5",$str1);
?>
//规则有不同的话你可以这里对比修改下正则参数。good luck~

//----------------------------------------
既然需求少了那么多,就可以
$str2 = preg_replace("/(src=\"[^\"]*?)\/Public\/Files(\/\d{4}_\d{1,2}_\d{1,2}\/\d+[.](?:jpg|gif|bmp)\")/","$1/File/Uploads$2",$str1);
行了,如果对图片的格式限制不严格(严格点的就需要在尾巴那里罗列出来),可以再简化成
$str2 = preg_replace("/(src=\"[^\"]*?)\/Public\/Files(\/\d{4}_\d{1,2}_\d{1,2}\/\d+[.][a-zA-Z]+\")/","$1/File/Uploads$2",$str1);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式