2

使用する

$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 が非常に小さいように見えるので、それが何らかの理由で失敗しているのだろうか?

ありがとう。

更新: Web サーバーとローカル マシンの両方から google.com を正常に取得できるため、Web ホストが私をブロックしていないようです。多数のプロキシを試しましたが、ページはローカル マシンから取得されますが、Web サーバーでは取得されません (上記で投稿した結果と同じ結果です)。IP 経由で接続する方法がわかりませんが、namelookup_time は google.com ページの場合よりもはるかに小さいです。この少量の追加情報を考えると、他に何か考えがある人はいますか?

4

1 に答える 1

0

file_get_contentsURLからデータを取得するために使用できます

于 2013-03-26T08:48:46.893 に答える