读取到的内容中出现多个类似于下面的图片连接
<img width=197 height=133  src=\"1000399tempForWgd.files\/image002.jpg\" v:shapes=\"_x0000_i1025\">
现在将其中的src内容替换为:
<img width=197 height=133  src=\"\/abc\/1000399tempForWgd.files\/image002.jpg\" v:shapes=\"_x0000_i1025\">
如果src中已经有\/abc\/则不替换
求高手帮写个正则,实在不在行
下面的写法哪里不对?
if ( preg_match_all('/<img[.\n]*?src\s*?=\s*?[\"\'](.*?)[\"\'](.*?)\/>/i',$mystring ,$matches ) ) {
echo 'getIT'; }

解决方案 »

  1.   


    $s =<<<eof
    <img width=197 height=133 src=\"1000399tempForWgd.files\/image002.jpg\" v:shapes=\"_x0000_i1025\">
    <img width=197 height=133 src=\"\/abc\/1000399tempForWgd.files\/image002.jpg\" v:shapes=\"_x0000_i1025\">
    eof;
    echo preg_replace('|<img([^>]*)src=\\\"((?!\\\/abc\\\/).*?)\\\"([^>]*)>|is','<img\\1 src=\"\/abc\/\\2\" \\3>',$s);