PHP cURL - HTTP代码0

时间:2014-05-06 13:26:28

标签: php curl

我查看了之前有关cURL和HTTP代码0的帖子,但他们没有帮助。

我可以使用以下www.bambooping.com下面的脚本进入localhost - 即test_curl.php localhost test_curl2.php bambooping.combambooping.com。但是,如果我在bambooping.com上运行它,我会得到HTTP代码0.(我知道在同一主机上调用它是愚蠢的 - 它只是为了隔离问题。)

未设置safe_mode <?php error_reporting(E_ALL); ini_set("display_errors", 1); function curl_download($Url){ // is cURL installed yet? if (!function_exists('curl_init')){ die('Sorry cURL is not installed!'); } // OK cool - then let's create a new cURL resource handle $ch = curl_init(); // Now set some options (most are optional) // Set URL to download curl_setopt($ch, CURLOPT_URL, $Url); // Set a referer // curl_setopt($ch, CURLOPT_REFERER, $_SERVER['REQUEST_URI']); // make it blank - then it is ignored - otherwise, checked and error returned! curl_setopt($ch, CURLOPT_REFERER, ''); // User agent curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0"); // Include header in result? (0 = yes, 1 = no) curl_setopt($ch, CURLOPT_HEADER, 0); // Should cURL return or print out the data? (true = return, false = print) curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Timeout in seconds curl_setopt($ch, CURLOPT_TIMEOUT, 10); // curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // Download the given URL, and return output $output = curl_exec($ch); print_r(curl_getinfo($ch)); // Close the cURL resource, and free system resources curl_close($ch); return $output; } $str = curl_download("http://www.bambooping.com/test_curl2.php"); echo $str; ?> ,并且编译了curl(即应该是因为我可以进入)。这很奇怪 - 调用主机正在阻止cURL。为什么用cURL调用会失败,但是用cURL调用同一个主机可以吗?

test_curl.php:

<?php
echo "I am here";
?>

test_curl2.php

Array
(
[url] => http://www.bambooping.com/test_curl2.php
[content_type] => 
[http_code] => 0
[header_size] => 0
[request_size] => 0
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0
[namelookup_time] => 4.3E-5
[connect_time] => 0
[pretransfer_time] => 0
[size_upload] => 0
[size_download] => 0
[speed_download] => 0
[speed_upload] => 0
[download_content_length] => 0
[upload_content_length] => 0
[starttransfer_time] => 0
[redirect_time] => 0
)

curl_getinfo是:

{{1}}

想法?我刚刚出来...... 谢谢 -

2 个答案:

答案 0 :(得分:1)

请检查卷曲错误

它说给你问题

<?php
    if(curl_errno($ch))  echo 'Curl error: ' . curl_error($ch);  
?>

答案 1 :(得分:0)

www.bambooping.com的服务器可能位于阻止传出HTTP请求的防火墙后面。即使它是同一台服务器,该请求仍然需要彻底解决DNS。

您可以编辑服务器上的hosts文件以包含127.0.0.1 www.bampooing.com。或者您可以将URL更改为http://127.0.0.1/test_curl2.php,因为此localhost域可能未被防火墙阻止。