在 windows测试正常,在liunux测试返回的是false,用了CURLOPT_FOLLOWLOCATION重定向之后,执行curt_exec直接返回false,下面那个CURLOPT_SSL_VERIFYPEER在windows要加这个才能访问到里面的内容,直接放linux$ch = curl_init();
 
    $header = array('Referer:http://192.168.10.100/extenStatus.php');
    curl_setopt($ch, CURLOPT_URL, "http://192.168.10.100/extenStatus.php");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, true);    
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);    $output = curl_exec($ch);
    var_dump($output);
    curl_close($ch);

解决方案 »

  1.   

    在补充下:linux里CURLOPT_FOLLOWLOCATION跳转之后,怎么获取里面的内容,还有linux爬不了百度的网页,但是PHPINFO那里显示有开启
      

  2.   

    你想表达什么意思?curl_setopt($ch, CURLOPT_HEADER, true);
    返回结果中包含 http 协议头
    如果返回的是 json,则不能解码curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
    如果对方进行了跳转(http 头中有 Location 指令),则跟着跳curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    对于 https 协议,不进行证书验证
      

  3.   

    curl_setopt($ch, CURLOPT_HEADER, true);
    这段上传错了,默认是头部信息是false,
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    这段不验证证书,因为不加这段直接返回false,linux不行
    然后windows测试好了之后,我把上面的代码放在LINUX就不行了