$contant="aaa<img src='../images/bannersms.jpg'>aaa";
preg_match_all("/<img.+src=('|\")(.+)\\1/isU",$contant,$a);
print_r( $a );

解决方案 »

  1.   

    你是想匹配image的地址吧。
    $contant="aaa<img src='../images/bannersms.jpg'>aaa";
    preg_match_all("/<img[^s]+src="([^"]+)">/i",$contant,$a);
    print_R($a);
      

  2.   

    谢谢楼上,,,因为$contant的内容是一个文本框提交的,里面会有回车,例如:<table cellspacing=0 cellpadding=0>
        <tbody>
            <tr>
                <td>
                <div align="center"><img alt='' src='../imgs/news/051019/0936372.jpg' /> </div>
                <a href='../imgs/news/051019/0936371.jpg'>fd</a> </td>
            </tr>
        </tbody>
    </table>这样,就求不出来了,应该怎样解决呢?
      

  3.   

    加了回车也求得的。草人的参数用了isU,i=不分大小写,s=通配符包括回车,U=默认不重复
      

  4.   

    不行!
    返回的没有src的值。
    文本框的内容是:
    <table>
        <tbody>
            <tr>
                <td><img alt="/" src="../img/a.jpg" /> </td>
            </tr>
        </tbody>
    </table>
    preg_match_all("/<img.+src=('|\")(.+)\\1/isU",$contant,$a);
    print_r($a);返回的值:Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) )
      

  5.   

    我不知道你是如何写的代码,
    下面的代码在我这里测试通过
    <?php
    $contant = <<<H
    <table>
        <tbody>
            <tr>
                <td><img alt="/" src="../img/a.jpg" /> </td>
            </tr>
        </tbody>
    </table>
    H;
    preg_match_all("/<img.+src=('|\")(.+)\\1/isU",$contant,$a);
    print_r($a);
    ?>
    输出Array
    (
        [0] => Array
            (
                [0] => <img alt="/" src="../img/a.jpg"
            )    [1] => Array
            (
                [0] => "
            )    [2] => Array
            (
                [0] => ../img/a.jpg
            ))
      

  6.   

    我发觉$contant 的内容在窗体提交后变了样:
    <table>
        <tbody>
            <tr>
                <td><img alt=\"/\" src=\"../img/a.jpg\" /> </td>
            </tr>
        </tbody>
    </table>
      

  7.   

    那应该是你的php.ini里设置了magic_quotes_gpc=On
    - -b
      

  8.   

    可以先做stripslashes,再析取;
    很简单,如:
    $str = stripslashes($str);
    preg_match_all("/<img.+src=\"(.+)\"/Ui",$str,$out);
    print_r($out[1]);
      

  9.   

    这是金山刚不久招聘的PHP的笔试~,完全不会做.
      

  10.   

    哈哈,,谢谢楼上各位高手!果然是stripslashes这个问题!现在用平生一笑的方法搞掂了!谢谢!还有稻草人,谢谢了!