奇怪了为什么提出不出来呢?请高手指点一下:
$str = '<IMG src=\"/uploadfile/20081030/20081030093700574.jpg\" border=0>';
$pattern = "/<img.*?src[\s]*=[\s]*[\\]?[\"|\']?[\s]*([^\s|\"|\'|\\|>]+).*?[\/]?>/is";
preg_match_all($pattern,$subject,$matches);
var_dump($matches);
echo "<hr>";

解决方案 »

  1.   

    不好意思,上面打错了,这样也提出不出来地址如下:
    $str = '<IMG src=\"/uploadfile/20081030/20081030093700574.jpg\" border=0>';
    $pattern = "/<img.*?src[\s]*=[\s]*[\\]?[\"|\']?[\s]*([^\s|\"|\'|\\|>]+).*?[\/]?>/is";
    preg_match_all($pattern,$str,$matches);
    echo $matches[1][0];
    echo "<hr>";
      

  2.   

    $str = "<IMG src=\"/uploadfile/20081030/20081030093700574.jpg\" border=0>"; 
    用双引号,单引号的话不会分析里面,完全当成一个字符串的。或者
    $str = '<IMG src="/uploadfile/20081030/20081030093700574.jpg" border=0>';
    也行
      

  3.   

    晕倒,楼上的:$str = "<IMG src=\"/uploadfile/20081030/20081030093700574.jpg\" border=0>"; 
    $str是接收表单通过string addslashes ( string str )处理过的数据,不是由我们所加双引号单引号的
      

  4.   

    抱歉搞错,似乎不是那里的问题。正则里匹配\的地方改下$str = ' <IMG src=\"/uploadfile/20081030/20081030093700574.jpg\" border=0>';
    $pattern = "/ <img.*?src[\s]*=[\s]*[\\\]?[\"|\']?[\s]*([^\s|\"|\'|\\\|>]+).*?[\/]?>/is";
    preg_match_all($pattern,$str,$matches);
    echo $matches[1][0];
    echo " <hr>"; 这样子试下。
      

  5.   

    有道理,再求一正则
    http://topic.csdn.net/u/20081031/01/13af6214-55af-434d-ab70-d1d54294c2a9.html
      

  6.   

    $str = ' <IMG src=\"/uploadfile/20081030/20081030093700574.jpg\" border=0>';
    $pattern = "/ <img.*?src[\s]*=[\s]*[\\\]?[\"|\']?[\s]*([^\s|\"|\'|\\\|>]+).*?[\/]?>/is";
    preg_match_all($pattern,$str,$matches);
    echo $matches[1][0];
    echo " <hr>";