比如说:
$data='<![CDATA[ <a href="http://v.youku.com/v_show/id_XMTE2MzgxNTM2.html" title="新《三国》首版预告片曝光(上)" target="_blank"><img src="http://g4.ykimg.com/0100641F464B43854F646C00332D1C335F2569-8E50-EA4F-7045-BF04622F3618" border="0" width="120" height="90" vspace="4" hspace="4" /></a> <p></p>
  ]]>';
就这样的一个字符串,如何得到src的值"http://g4.ykimg.com/0100641F464B43854F646C00332D1C335F2569-8E50-EA4F-7045-BF04622F3618",用正侧表达试还是用什么,请各位指教,急!

解决方案 »

  1.   

    $str = <<<STR
     <![CDATA[ <a href="http://v.youku.com/v_show/id_XMTE2MzgxNTM2.html" title="新《三国》首版预告片曝光(上)" target="_blank"> <img src="http://g4.ykimg.com/0100641F464B43854F646C00332D1C335F2569-8E50-EA4F-7045-BF04622F3618" border="0" width="120" height="90" vspace="4" hspace="4" /> </a> <p> </p> 
      ]]>
    STR;preg_match_all("/<a[^<>]*href=[\"]([^\"]+)[\"][^<>]*>/im",$str,$matches);var_dump($matches[1]);
      

  2.   

    能取出src的地址(img 中的),我把你写的copy到php中不能执行。
      

  3.   

    我也知道用正侧,谁用我给的$data变量把src取出下谢谢
      

  4.   

    <?PHP 
    $str = <<<STR
     <![CDATA[ <a href="http://v.youku.com/v_show/id_XMTE2MzgxNTM2.html" title="新《三国》首版预告片曝光(上)" target="_blank"> <img src="http://g4.ykimg.com/0100641F464B43854F646C00332D1C335F2569-8E50-EA4F-7045-BF04622F3618" border="0" width="120" height="90" vspace="4" hspace="4" /> </a> <p> </p> 
      ]]>
    STR;
    preg_match_all("/<img[^<>]*src=[\"]([^\"]+)[\"][^<>]*>/im",$str,$matches);
    var_dump($matches[1]);
    ?>上面那个是去的超链接的  没有看清lz要求
      

  5.   

    不能执行报错的Parse error: syntax error, unexpected '<' in G:\www\lx\newfile.php on line 2
      

  6.   

    $data=' <![CDATA[ <a href="http://v.youku.com/v_show/id_XMTE2MzgxNTM2.html" title="新《三国》首版预告片曝光(上)" target="_blank"> <img src="http://g4.ykimg.com/0100641F464B43854F646C00332D1C335F2569-8E50-EA4F-7045-BF04622F3618" border="0" width="120" height="90" vspace="4" hspace="4" /> </a> <p> </p> 
      ]]>';
    preg_match_all("/<img[^<>]*src=[\"]([^\"]+)[\"][^<>]*>/im",$data,$matches);
    var_dump($matches[1]);
    换成你 的$date试试
      

  7.   

    array(0) { } 
    结果如上,不对
      

  8.   

    晕  你的环境不会有问题吧  
    在我这边的执行结果是:
    array(1) { [0]=> string(86) "http://g4.ykimg.com/0100641F464B43854F646C00332D1C335F2569-8E50-EA4F-7045-BF04622F3618" } preg_match_all("/<img[^<>]*src=[\"]([^\"]+)[\"][^<>]*>/im",$data,$matches); 
    我把那空格去了一下  你再试试   如果不行  还是等别人吧   我这里都行
      

  9.   

    你把正则里面的空格去掉   就是/与<之间  ^与<>之间   一回复他就自动加了  
      

  10.   

    $data='<![CDATA[ <a href="http://v.youku.com/v_show/id_XMTE2MzgxNTM2.html" title="新《三国》首版预告片曝光(上)" target="_bl
    ank"> <img src="http://g4.ykimg.com/0100641F464B43854F646C00332D1C335F2569-8E50-EA4F-7045-BF04622F3618" border="0" width="120
    " height="90" vspace="4" hspace="4" /> </a> <p> </p>
    ]]>';
    preg_match_all("/<img\s+?src=['\"]?([^'\"]+)['\"]?/im",$data,$matches);
    print_r($matches[1]);
      

  11.   

    谢谢liuahuilele的回答,我把空格去了还是不行
    Aylazhang的回答可以