<?
$str ='<IMG alt="" hspace=0 src="e:\My Documents\My Pictures\index_02.jpg" align=baseline border=0>
<br /><IMG alt="" hspace=0 src=\'e:\My Documents\My Pictures\index_02.jpg\' align=baseline border=0>
<IMG alt="" hspace=0 src=e:\My Documents\My Pictures\index_02.jpg align=baseline border=0>
<IMG alt="" hspace=0 src=\'e:\My Documents\My Pictures\index_02.jpg\' align=baseline border=0>';
echo preg_replace('/(<img\s.*\ssrc=["|\']?)[^"\']*\x5C([^\x5C]*>)/Ui','\\1images/id/\\2',$str);
?>

解决方案 »

  1.   

    <?php
    $file_name = "mm.html";            //源文件名
    $file_new_name = "new_".$file_name;//要生成的文件名//读取源文件内容.
    $file = fopen($file_name,"r"); // 打开文件
    $htmlsrc = fread($file,filesize($file_dir . $file_name));//将源文件内容读到变量$htmlsrc
    fclose($file);//关闭文件//执行替换
    $htmlsrc = preg_replace('/(<img\s.*\ssrc=["\']?)[^"\']*\x5C([^\x5C]*>)/Ui','\\1images/id/\\2',$htmlsrc);//写入新文件.
    $newfile = fopen($file_new_name,"w");
    fwrite($newfile,$htmlsrc);
    fclose($newfile);?>
      

  2.   

    谢谢你 netvt(唯她)
    你帮过我不少忙我还有个问题就是怎么得到<IMG>的个数,和图片的文件名(我要根据这个生成上传页面)我做的是一个文章管理系统,数据库存储的是排好版的文章的html源码,现在就剩图片问题不好解决了。
      

  3.   

    $str = '
    <IMG alt="" hspace=0 src="e:\My Documents\My Pictures\index_02.jpg" align=baseline border=0>
    <IMG alt="" hspace=0 src="e:\My Documents\My Pictures\index_02.jpg" align=baseline border=0>
    <IMG alt="" hspace=0 src="e:\My Documents\My Pictures\index_02.jpg" align=baseline border=0>
    <IMG alt="" hspace=0 src="e:\My Documents\My Pictures\index_02.jpg" align=baseline border=0>
    ';
        $reg = '/(<img\s.*\ssrc=["\']?)[^"\']*\x5C([^\x5C]*>)/Ui';
        preg_match_all($reg, $str, $m);
    echo "<xmp>";
    print_r($m);
    #取count($m[0]);就可以得到img的个数了.
      

  4.   

    改进一下.
        $str = '
    <IMG alt="" hspace=0 src="e:\My Documents\My Pictures\index_02.jpg" align=baseline border=0>
    <IMG alt="" hspace=0 src="e:\My Documents\My Pictures\index_02.jpg" align=baseline border=0>
    <IMG alt="" hspace=0 src="e:\My Documents\My Pictures\index_02.jpg" align=baseline border=0>
    <IMG alt="" hspace=0 src="e:\My Documents\My Pictures\index_02.jpg" align=baseline border=0>
    ';
        $reg = '/<img\s.*\ssrc=["\']([^"\']*)["\']([^\x5C]*>)/Ui';
        preg_match_all($reg, $str, $m);
    echo "<xmp>";
    print_r($m);
    #取count($m[0]);就可以得到img的个数了.$m[1]是存放着文件句的数组了.
      

  5.   

    提取img的src用
    preg_match_all("/<img .*\bsrc.*=['\"](.*)['\"]/iU",$text,$regs);则count($regs[1])即为<IMG>的个数,数组$regs[1]存有全部图片文件名“和图片的文件名(我要根据这个生成上传页面)”
    这里根据这个生成上传页面是不行的,file对象是只读的,不接受初值