preg_match_all('/<link>([^"]+)\</link><image>([^"]+)</image>/', file_get_contents(ROOT_PATH . DATA_DIR . '/flash_data.xml'), $t, PREG_SET_ORDER)附XML文件:<data>
<channel>
0
<item><link>http://www.szvesdf.com/space.html</link><image>/upload/201111111321002257.jpg</image></item>
0
<item><link>http://www.szvesdf.com/space.html</link><image>/upload/201111081320760116.jpg</image></item>
0
<item><link>http://www.szvesdf.com/space.html</link><image>upload/201111111321019692.jpg</image></item>
0
<item><link>http://www.szvesdf.com/space.html</link><image>upload/201111181321619656.jpg</image></item>
0
<item><link>http://www.szvesdf.com/space.html</link><image>upload/201111181321619680.jpg</image></item>
</channel>
</data>匹配的规格那个是不对的,麻烦各位按照格式匹配下

解决方案 »

  1.   

    该转义的地方没有转义:preg_match_all('/<link>([^"]+)<\/link><image>([^"]+)<\/image>/', file_get_contents(ROOT_PATH . DATA_DIR . '/flash_data.xml'), $t, PREG_SET_ORDER)
      

  2.   

    晕,还是有问题的
    输出结果:Array
    (
        [0] => Array
            (
                [0] => <link>data/afficheimg/20111122peswnj.jpg</link><image>http://#</image></item>
    0<item><link>http://sina.com.cn</link><image>data/afficheimg/20111122brdgbu.jpg</image>
                [1] => data/afficheimg/20111122peswnj.jpg</link><image>http://#</image></item>
    0<item><link>http://sina.com.cn
                [2] => data/afficheimg/20111122brdgbu.jpg
            ))
      

  3.   

    为什么不对?$data = <<<STR
    <data>
    <channel>
    0
    <item><link>http://www.szvesdf.com/space.html</link><image>/upload/201111111321002257.jpg</image></item>
    0
    <item><link>http://www.szvesdf.com/space.html</link><image>/upload/201111081320760116.jpg</image></item>
    0
    <item><link>http://www.szvesdf.com/space.html</link><image>upload/201111111321019692.jpg</image></item>
    0
    <item><link>http://www.szvesdf.com/space.html</link><image>upload/201111181321619656.jpg</image></item>
    0
    <item><link>http://www.szvesdf.com/space.html</link><image>upload/201111181321619680.jpg</image></item>
    </channel>
    </data>
    STR;
    preg_match_all('/<link>([^"]+)<\/link><image>([^"]+)<\/image>/isU', $data,$matches);
    print_r($matches[1]);
    print_r($matches[2]);