2014-05-06 53 views
0

我看过以前的帖子关于cURL和HTTP代码0,但他们没有帮助。即,test_curl.phplocalhost电话test_curl2.phpbambooping.com -PHP cURL - HTTP代码0

我可以从localhost蜷缩成www.bambooping.com下面的脚本。但是,如果我在bambooping.com运行它,我得到的HTTP代码0(我知道调用此同一台主机上是愚蠢的 - 它只是隔离问题)

bambooping.comsafe_mode没有设置,和卷曲在编译(即,因为我可以卷入)。这很奇怪 - 主叫方阻止了cURL。为什么用cURL调用这样的失败,但用cURL调用同一个主机会好吗?

test_curl.php:

<?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; 
?> 

test_curl2.php

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

的curl_getinfo是:

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 
) 

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

回答

0

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

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

0

请检查有卷曲的错误

它说的问题给你

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