<meta http-equiv="Content-type" content="text/html;charset=utf-8" />
<?php
$file = file_get_contents("http://www.aiyooyoo.com/");
$partten = "/\<a href=\"http\:\/\/[\w]+\.[\w]+\/[\w]+\.[\w]+\/[\w]+\/[\d]+\/\" title=\"(.*)\">(.*)\<\/a\>/";
if(preg_match_all($partten,$file,$arr)){
foreach($arr as $key=>$val){

}
}
?>我想要<a>.*</a>里面的内容,其他内容不要,我怎么取出来有很多重复的,看看是不是那里写错了?

解决方案 »

  1.   

    foreach($arr[2] as $key=>$val)
      

  2.   

    他显然没看明白手册,不晓得match_all的用法
      

  3.   

    补充一下,(?开头的正则匹配不计算在内,请参考pcre中关于子匹配的语法
      

  4.   

    array_unique($arr[1]) //去除数组arr[1]中重复的值
      

  5.   

    如果只要标题 不要链接的话 可以这样
    <meta http-equiv="Content-type" content="text/html;charset=utf-8" />
    <?php
        $file = file_get_contents("http://www.aiyooyoo.com/");
        $partten = "/\<a href=\"http\:\/\/[\w]+\.[\w]+\/[\w]+\.[\w]+\/[\w]+\/[\d]+\/\" title=\"(?:.*)\">(.*)\<\/a\>/";
        if(preg_match_all($partten,$file,$arr)){
            print_r(array_unique($arr[1]));
            //foreach($arr as $key=>$val){
                
            //}
        }
    ?>