使用
$curl_handle = curl_init();
curl_setopt( $curl_handle, CURLOPT_CONNECTTIMEOUT, 10 );
curl_setopt( $curl_handle, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $curl_handle, CURLOPT_HEADER, 1 );
curl_setopt( $curl_handle, CURLOPT_VERBOSE, 1 );
curl_setopt( $curl_handle, CURLOPT_URL, "https://www.someurl.com" );
$buffer = curl_exec( $curl_handle );
print_r( curl_getinfo ( $curl_handle ) );
我得到了
Array ( [url] => https://www.someurl.com [content_type] => [http_code] => 0
[header_size] => 0 [request_size] => 0 [filetime] => -1 [ssl_verify_result] => 0
[redirect_count] => 0 [total_time] => 10.00005 [namelookup_time] => 0.001271
[connect_time] => 0 [pretransfer_time] => 0 [size_upload] => 0 [size_download] => 0
[speed_download] => 0 [speed_upload] => 0 [download_content_length] => -1
[upload_content_length] => -1 [starttransfer_time] => 0 [redirect_time] => 0 )
所以它似乎没有连接到服务器,但相同的代码可以在我的本地机器上正常工作。有没有办法获得更多信息?我的怀疑是,我的webhost阻止了传出连接,或者我正在尝试连接的服务器拒绝连接(在几个月前的一个阶段,他们正在这样做,但我至少收到了403条消息,现在我什么都没得到。我已经尝试增加超时但相同的结果(在响应中超时取代了10)。另外,namelookup_time看起来很小,所以我想知道这是不是以某种方式失败了?
感谢。
更新:我可以从我的网络服务器和我的本地计算机上检索google.com,所以看起来不是我的网站主机阻止了我。我尝试了很多代理,页面是从我的本地机器检索的,但不是在我的网络服务器上检索(与我上面发布的结果相同)。我无法弄清楚如何通过IP连接,但namelookup_time比google.com页面小得多。鉴于这些少量的额外信息,有没有人有任何其他想法?
答案 0 :(得分:0)
您可以使用file_get_contents
从网址