php如何正则替换htm中的图片地址?
请问如何将src中的图片全部变成file/*.*?
test.htm中代码如下<script type="text/javascript" src="../js/png008.js"></script>
<img src="modcss/images/mood/ico-mood-8.gif">
<img src="file/ico-mood-5.gif">
<img src="page/ico-mood-4.png">
<img src="page/ihello-4.jpg">
变成<script type="text/javascript" src="../js/png008.js"></script>
<img src="file/ico-mood-8.gif">
<img src="file/ico-mood-5.gif">
<img src="file/ico-mood-4.png">
<img src="file/ihello-4.jpg">

解决方案 »

  1.   

    $str = '<img src="page/ihello-4.jpg">';
    echo preg_replace('/<img\s+src="(.*)\/(.*)">/i','<img src="file/$2">',$str);
      

  2.   

    $str = '
    <script type="text/javascript" src="../js/png008.js"></script>
    <img src="modcss/images/mood/ico-mood-8.gif">
    <img src="file/ico-mood-5.gif">
    <img src="page/ico-mood-4.png">
    <img src="page/ihello-4.jpg">
    ';
    $str = preg_replace('#(?<=<img src=").+/#i','file/',$str);
    var_dump($str);
      

  3.   

    $str = preg_replace('#(?<=<img src=").+/#i','file/',$str);
    为什么我看不懂
      

  4.   


    (?<=<img src=")  -- 从<img src="之后开始匹配
    .*/              -- 匹配src="和/之间字符串,包括/
      

  5.   

    '#(?<=<img src=").+/#i'
    正则不是 '/...../' 这样的吗?前面怎么没有/
    还有#是什么意思,没见过
      

  6.   


    #和/一样的, 都是起到定界符作用, 在php中支持各种各样的定界符, 喜欢的可以自己测试$%^T@#&之类