preg_replace("/(<(img.*?src|link.*?href|script.*?src|iframe.*?src)=([\"']))(.*?)(\\3.*?>)/is","$1".TMP_DIR."$4$5",$tpl_source);是把img等标签内的src等 属性 加上TMP_DIR的值。请问 如果 src 值 以 http:// 开头 不加TMP_DIR的值,表达式该如何修改,谢谢!正则表达式

解决方案 »

  1.   

    请问 如果 src 值 以 http://或HTTP:// 开头 不加TMP_DIR的值,表达式该如何修改,谢谢!
      

  2.   

    基础算法$s = <<< TXT
    <img src='a.gif'>
    <img src='http://a.jpg'>
    <img src="a.gif">
    <img src="http://a.jpg">
    TXT;$p = '/(?<=\bsrc=(["\']))(?!http:)(.+\\1)/is';echo preg_replace($p, 'TMP_DIR$2', $s);
    <img src='TMP_DIRa.gif'>
    <img src='http://a.jpg'>
    <img src="TMP_DIRa.gif">
    <img src="http://a.jpg">
      

  3.   

    楼上正解,(?!http:)这个就可以排除http:开头的