补充以下,图片不仅仅是gif的,可能有JPG,JPEG等,这些不用考虑,主要是前面部分类似<img src=/upfile/200707是考虑要被替换的部分,我在发的时候>符号前面是没有空格的,论坛自动给我加的,请大家注意

解决方案 »

  1.   

    <?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);
    ?>
      

  2.   

    楼上的,不对啊,不一定是<img src=/upfile/20070705130941.gif>和<img src=/upfile/20061108222030.gif>两种啊
      

  3.   

    <img src=/upfile/20070705130941.gif>
    <img src=/upfile/20061108222030.gif>
    。。类似这样用年月日等来命名的图片自动替换啊,同一篇文章含多张图片。
      

  4.   

    当然不仅限与我列举的这两个年月,也可能有其他年月,格式就是这样的格式<img src=/upfile/20070705130941.gif>
      

  5.   

    <?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);
    ?>
      

  6.   

    <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代码,不是连贯的,表示图片的,怎么样把他替换一下,当然是很多处需要替换,因为我现在把图片拆分到不同的目录,以前就一个目录,文件太多了,现在用年月建立了很多目录,图片都转移到相应的目录了,通过文件名可以知道这个图片是在哪年月的。
      

  7.   

     我晕。
    你给一下替换后的效果吧。<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 > 
      

  8.   

    $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);
      

  9.   

    呵呵,楼上的还是没有看明白我的意图啊,20070705130941.gif像这样的文字根本不能够出现在代码里面的,<img src=/upfile/20070705130941.gif>,通过<img src=/upfile/来确定是一张图片的开始,>是一张图片的结束,因为所有图片的代码长度是一样的,当然也可以计算<img src=/upfile/符号多少位以后是一张图片的结束,有很多类似这样格式的代码,都要替换掉,还要把年月提取出来,因为已经单独给它们建立了目录
      

  10.   

    仔细看了吗?
    我的 $s 只是一个举例代码,要用你的变量的话,直接用$paperdetail正则就成了
    echo preg_replace("/(?<=<img)\s+src\s*=\s*\/upfile\/(\d{6})(.*?.gif)[^>]*?(?=>)/"," src=http://www.abc.com/book/\\1/\\1\\2",$paperdetail);
      

  11.   

    图片不一定是gif格式的啊,也可能有jpeg,jpg或者bmp格式等等啊
      

  12.   

    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);