代码有点多不方便贴出来,不过我希望朋友们能给我一个思路,这里先谢谢了
$_array_article=array("http://blog.csdn.net/anewczs/article/details/6617391");
//$_array_article[]="http://blog.csdn.net/tianlesoftware/article/details/6723117";foreach($_array_article as $value){
$spider->begin_url=$value;
file_get_contents($spider->begin_url);
_spider($spider->fetch_turl($spider->begin_url));
}
这里是代码的一部分,通过一个链接组成的数组,来对各个链接进行处理,但是又这样一个情况:数组元素大于一个的话就会出错,我的感觉是循环进行了一次之后,内存中的一些值影响了第二次循环的进行,这样才导致了出错,怎么可以做到让我需要的两个全局数组可以不断添加新元素,其它的所有内存中的值都清空?

解决方案 »

  1.   

    file_get_contents这里做啥呢取得的内容就空着?foreach($_array_article as $value){
     
        _spider(file_get_contents($value));
    }
      

  2.   

    请问
    _spider  这个干吗用的
      

  3.   

    _spider()函数是怎么写的呢?
    贴出来看看
      

  4.   

    出错是哪里出错了,是指循环第二次执行是出错?
    如果这样的话可能你数组内部指针到尾部了,reset($array)试试
      

  5.   

    你怎能把file_get_contents这循环里去了
    我也curious你的_spider
      

  6.   

    file_get_contents的作用是加载网页,必须等到网页完全下载了才进行下一步
      

  7.   

    function _spider($url){
    global $spider;
    foreach($url as $value){
    $is_match=strstr($value,'/article/details/');
    if($is_match!=false){
    if(in_array($value,$array_article)==false){
    $array_article[count($array_article)]=$value;
    //print_r($spider->array_article);
    }
    }
    else{
    if(in_array($value,$array_category)==false){ $spider->array_category[count($array_category)]=$value;
    //print_r($spider->array_category);
    //echo $value;
    }
    }
    }
    }
      

  8.   

    function _spider($url){
    global $spider;
    foreach($url as $value){
    $is_match=strstr($value,'/article/details/');
    if($is_match!=false){
    if(in_array($value,$array_article)==false){
    $array_article[count($array_article)]=$value;
    //print_r($spider->array_article);
    }
    }
    else{
    if(in_array($value,$array_category)==false){ $spider->array_category[count($array_category)]=$value;
    //print_r($spider->array_category);
    //echo $value;
    }
    }
    }
    }
      

  9.   

    不能这么抓的,很容易陷入抓取死循环。
    抓取一般是这样
    #1.建立一个文件用于保存url
    #2.抓取得到的url附加进文件去
    #3.读取文件里的url,一行行抓数据,反复#2,#3这里面会有一些问题,比如如何避免相同的链接抓取两次,如何限定抓取目标为某个域名。。等等。这些小问题相信你能解决了。
      

  10.   

    你把最后一行注释掉,直接打印echo "123";看能打印两次不