使用
$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 )
所以它似乎没有连接到服务器,但相同的代码在我的本地机器上运行良好。有什么方法可以获取更多信息吗?我的怀疑是我的虚拟主机阻止了传出连接,或者我尝试连接的服务器拒绝了连接(几个月前他们正在这样做,但我至少收到了 403 条消息,现在我'我什么也没得到)。我尝试增加超时但结果相同(响应中的超时替换为 10)。此外,namelookup_time 似乎很小,所以我想知道这是否以某种方式失败?
谢谢。
更新:我可以从我的网络服务器和本地机器上很好地检索 google.com,所以似乎不是我的网络主机阻止了我。我尝试了许多代理,并且该页面是从我的本地计算机上检索的,但不是在我的网络服务器上(与我上面发布的结果相同)。我不知道如何通过 IP 进行连接,但是 namelookup_time 比 google.com 页面要小得多。鉴于这少量的额外信息,有没有人有任何其他想法?