$a = '<p><img src="../upload/201106/201106090229318464.jpg" alt="" /></p>
<p><img src="../upload/201106/201106090229383468.jpg" alt="" /></p>
<p>&nbsp;</p>
<p><img src="../upload/201106/201106090229478097.jpg" alt="" /></p>';preg_match_all("#src=(.*?)\s alt=""#isU",$a,$arr1);
echo $arr1[1][0]; 这样取不到第一张图片的路径+文件名呀

解决方案 »

  1.   

    "#src=(.*?)\s alt=""#isU",这个不报错吗?preg_match_all("#src=(.*)\s*alt=\"\"#isU",$a,$arr1);
      

  2.   

    $a = '<p><img src="../upload/201106/201106090229318464.jpg" alt="" /></p>
    <p><img src="../upload/201106/201106090229383468.jpg" alt="" /></p>
    <p>&nbsp;</p>
    <p><img src="../upload/201106/201106090229478097.jpg" alt="" /></p>';preg_match_all('#src=(.*)\s#isU',$a,$arr1);
    print_r($arr1);Array
    (
        [0] => Array
            (
                [0] => src="../upload/201106/201106090229318464.jpg" 
                [1] => src="../upload/201106/201106090229383468.jpg" 
                [2] => src="../upload/201106/201106090229478097.jpg" 
            )    [1] => Array
            (
                [0] => "../upload/201106/201106090229318464.jpg"
                [1] => "../upload/201106/201106090229383468.jpg"
                [2] => "../upload/201106/201106090229478097.jpg"
            ))
      

  3.   


    $str = <<<EOS
    <p><img src="../upload/201106/201106090229318464.jpg" alt="" /></p>
    <p><img src="../upload/201106/201106090229383468.jpg" alt="" /></p>
    <p>&nbsp;</p>
    <p><img src="../upload/201106/201106090229478097.jpg" alt="" /></p>;
    EOS;preg_match_all('/<img\s+src=[\'"](.*)[\'"]/Ui', $str, $matches);echo '<pre>';print_r($matches[1]);
    /*
    Array
    (
        [0] => ../upload/201106/201106090229318464.jpg
        [1] => ../upload/201106/201106090229383468.jpg
        [2] => ../upload/201106/201106090229478097.jpg
    )*/