请教:关于php字符串变量的替换问题 补充以下,图片不仅仅是gif的,可能有JPG,JPEG等,这些不用考虑,主要是前面部分类似<img src=/upfile/200707是考虑要被替换的部分,我在发的时候>符号前面是没有空格的,论坛自动给我加的,请大家注意 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <?php$content = "<img src=/upfile/20070705130941.gif>或 <img src=/upfile/20061108222030.gif>";print preg_replace("/<img src=\/upfile(.+?)>/", "<img src=http://www.abc.com/book\$1>",$content);?> 楼上的,不对啊,不一定是<img src=/upfile/20070705130941.gif>和<img src=/upfile/20061108222030.gif>两种啊 <img src=/upfile/20070705130941.gif><img src=/upfile/20061108222030.gif>。。类似这样用年月日等来命名的图片自动替换啊,同一篇文章含多张图片。 当然不仅限与我列举的这两个年月,也可能有其他年月,格式就是这样的格式<img src=/upfile/20070705130941.gif> <?php$content = "<img src=/upfile/20070705130941.gif>或 <img src=/upfile/20061108222030.gif>";print preg_replace("/<img src=\/upfile\/(\d{6})(.+?)>/", "<img src=http://www.abc.com/book/\$1/\$1$2>",$content);?> <img src=/upfile/20070705130941.gif><img src=/upfile/20061207232030.gif><img src=/upfile/20050628112010.gif><img src=/upfile/20040903222020.gif><img src=/upfile/20031015121330.gif>........................................楼上的,没有看明白我的意思啊,我的意思是在正文叙述的内容里面有很多类似上面的HTML代码,不是连贯的,表示图片的,怎么样把他替换一下,当然是很多处需要替换,因为我现在把图片拆分到不同的目录,以前就一个目录,文件太多了,现在用年月建立了很多目录,图片都转移到相应的目录了,通过文件名可以知道这个图片是在哪年月的。 我晕。你给一下替换后的效果吧。<img src=http://www.abc.com/book/200707/20070705130941.gif > <img src=http://www.abc.com/book/200612/20061207232030.gif > <img src=http://www.abc.com/book/200506/20050628112010.gif > <img src=http://www.abc.com/book/200409/20040903222020.gif > <img src=http://www.abc.com/book/200310/20031015121330.gif > $s = "abccc : <img src=/upfile/20070705130941.gif> testset sdfsdf : <img src=/upfile/20061108222030.gif >googlsdfsf : <img src =/upfile/20030108222030.gif >";echo preg_replace("/(?<=<img)\s+src\s*=\s*\/upfile\/(\d{6})(.*?.gif)[^>]*?(?=>)/"," src=http://www.abc.com/book/\\1/\\1\\2",$s); 呵呵,楼上的还是没有看明白我的意图啊,20070705130941.gif像这样的文字根本不能够出现在代码里面的,<img src=/upfile/20070705130941.gif>,通过<img src=/upfile/来确定是一张图片的开始,>是一张图片的结束,因为所有图片的代码长度是一样的,当然也可以计算<img src=/upfile/符号多少位以后是一张图片的结束,有很多类似这样格式的代码,都要替换掉,还要把年月提取出来,因为已经单独给它们建立了目录 仔细看了吗?我的 $s 只是一个举例代码,要用你的变量的话,直接用$paperdetail正则就成了echo preg_replace("/(?<=<img)\s+src\s*=\s*\/upfile\/(\d{6})(.*?.gif)[^>]*?(?=>)/"," src=http://www.abc.com/book/\\1/\\1\\2",$paperdetail); 图片不一定是gif格式的啊,也可能有jpeg,jpg或者bmp格式等等啊 echo preg_replace("/(?<=<img)\s+src\s*=\s*\/upfile\/(\d{6})(.*?\.bmp|jpg|gif|png|pic|wmf|tif|jpeg)[^>]*?(?=>)/i"," src=http://www.abc.com/book/\\1/\\1\\2",$paperdetail); 请问网址的问题,简化缩写等等 php+Apache+mysql 不显示图片 一个初学PHP的问题. session跨页传递的问题! 正则求救 正则表达式问题,新手需要帮助 怎么从xml读取所有亚洲的国家? 求救:为什么session对象不能在PHP页面间传递 请各位兄弟帮我看看这个简单的问题! [PHP]PHP中怎么重写超全局变量? 请问CSDN发帖和回复生成静态页面是怎么弄的? 求一SQL语句 ---mysql
$content = "<img src=/upfile/20070705130941.gif>或 <img src=/upfile/20061108222030.gif>";
print preg_replace("/<img src=\/upfile(.+?)>/", "<img src=http://www.abc.com/book\$1>",$content);
?>
<img src=/upfile/20061108222030.gif>
。。类似这样用年月日等来命名的图片自动替换啊,同一篇文章含多张图片。
$content = "<img src=/upfile/20070705130941.gif>或 <img src=/upfile/20061108222030.gif>";
print preg_replace("/<img src=\/upfile\/(\d{6})(.+?)>/", "<img src=http://www.abc.com/book/\$1/\$1$2>",$content);
?>
<img src=/upfile/20061207232030.gif>
<img src=/upfile/20050628112010.gif>
<img src=/upfile/20040903222020.gif>
<img src=/upfile/20031015121330.gif>
........................................楼上的,没有看明白我的意思啊,我的意思是在正文叙述的内容里面有很多类似上面的HTML代码,不是连贯的,表示图片的,怎么样把他替换一下,当然是很多处需要替换,因为我现在把图片拆分到不同的目录,以前就一个目录,文件太多了,现在用年月建立了很多目录,图片都转移到相应的目录了,通过文件名可以知道这个图片是在哪年月的。
你给一下替换后的效果吧。<img src=http://www.abc.com/book/200707/20070705130941.gif >
<img src=http://www.abc.com/book/200612/20061207232030.gif >
<img src=http://www.abc.com/book/200506/20050628112010.gif >
<img src=http://www.abc.com/book/200409/20040903222020.gif >
<img src=http://www.abc.com/book/200310/20031015121330.gif >
testset sdfsdf : <img src=/upfile/20061108222030.gif >
googlsdfsf : <img src =/upfile/20030108222030.gif >
";
echo preg_replace("/(?<=<img)\s+src\s*=\s*\/upfile\/(\d{6})(.*?.gif)[^>]*?(?=>)/"," src=http://www.abc.com/book/\\1/\\1\\2",$
s);
我的 $s 只是一个举例代码,要用你的变量的话,直接用$paperdetail正则就成了
echo preg_replace("/(?<=<img)\s+src\s*=\s*\/upfile\/(\d{6})(.*?.gif)[^>]*?(?=>)/"," src=http://www.abc.com/book/\\1/\\1\\2",$paperdetail);