php文件下
function main(){   
    $current_url = "http://hao123.com/";//初始url   
    $fp_puts = fopen("url.txt","ab");//记录url列表   
    $fp_gets = fopen("url.txt","r");//保存url列表   
    do{   
        $result_url_arr = crawler($current_url);   
        if($result_url_arr){   
            foreach ($result_url_arr as $url) {   
                fputs($fp_puts,$url."\r\n");   
            }   
        }   
    }while ($current_url = fgets($fp_gets,1024));//不断获得url   
       
}   
main();  
运行main()函数,报出 [function.fopen]: failed to open stream: HTTP request failed! 错误(放此文件放到服务器上运行就没问题,放到本地运行就报错)
是哪里的问题呀,怎么解决,多谢

解决方案 »

  1.   

    php.ini
    =========
    allow_url_fopen = On
      

  2.   

    php.ini 中,已经是 allow_url_fopen = On
    大家再帮我想想。。
      

  3.   

    fopen 函数报错
    下面这一行
    $fp_gets = fopen("url.txt","r");//保存url列表  
    怎么解决呀,
      

  4.   

    一个文件不能同时读和写再说 LZ 的代码有问题function main(){  
        $current_url = "http://hao123.com/";    //***  这里初始化URL ***
        $fp_puts = fopen("url.txt","ab");       //记录url列表  
        $fp_gets = fopen("url.txt","r");         //保存url列表  
        do{  
            $result_url_arr = crawler($current_url);  
            if($result_url_arr){  
                foreach ($result_url_arr as $url) {  
                    fputs($fp_puts,$url."\r\n");  
                }  
            }  
        }while ($current_url = fgets($fp_gets,1024));// ***  这个地方又把$current_url赋值,而且是读文件url.txt ****  
          
    }  
    main(); 
      

  5.   

    我想,这句应该是这样的吧 while ($current_url != fgets($fp_gets,1024));//不断获得url  
      

  6.   

    crawler(),这应该是楼主自己定义的函数吧?我不太理解这个作用!
      

  7.   

     $fp_puts = fopen("url.txt","ab");  //第二个参数,用wb试试
      

  8.   

    多谢大家,楼上的方法,我都试过,没有解决
    还是 报出 [function.fopen]: failed to open stream: HTTP request failed! 错误
    与封装的函数无关
    我不明白的是 :此文件放到服务器上运行就没问题,放到本地运行就报错大家再帮我想想
      

  9.   

    error_reporting(0);
    set_time_limit(0);
    就可以了
      

  10.   

    error_reporting(0);//用这个就OK了, 但有可能产生致命的错误。
      

  11.   

    这样做可以解决某些人的问题,有人说在php.ini中,有这样两个选项:allow_url_fopen =on(表示可以通过url打开远程文件),user_agent="PHP"(表示通过哪种脚本访问网络,默认前面有个 " ; " 去掉即可。)重启服务器。但是有些还是会有这个警告信息,想用完美的解决还差一步,还得设置php.ini里面的user_agent,php默认的user_agent是PHP,我们把它改成Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)来模拟浏览器就可以了user_agent=”Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)”