1
$agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
$ch=curl_init();
   curl_setopt ($ch, CURLOPT_URL,$url );
   curl_setopt($ch, CURLOPT_USERAGENT, $agent);
   curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt ($ch,CURLOPT_VERBOSE,false);
   curl_setopt($ch, CURLOPT_TIMEOUT, 5);
   curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, FALSE);
   curl_setopt($ch,CURLOPT_SSLVERSION,3);
   curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, FALSE);
   $page=curl_exec($ch);
   //echo curl_error($ch);
   $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
   curl_close($ch);

プロジェクトで cUrl を使用しています。Web サイトの HTTP CODE を取得しています。しかし、 "asdasd" ($url="asdasd") を試すと、返される HTTP CODE は 200 です。しかし、「asdasd」は Web サイトではありません。なぜ HTTP CODE は 200 なのですか?

4

2 に答える 2

1

curl_exec最初から戻り値を確認することをお勧めします。マニュアルには次のように書かれています:

TRUE成功時またはFALSE失敗時に戻ります。ただし、CURLOPT_RETURNTRANSFERオプションが設定されている場合は、成功した場合FALSEと失敗した場合に結果が返されます。

補足curl_getinfoがあります

この関数によって収集された情報は、ハンドルが再利用された場合に保持されます。これは、統計がこの関数によって内部的にオーバーライドされない限り、以前の情報が返されることを意味します。

そのため、HTTP 200 は、以前の cURL 呼び出しの結果である可能性があります。

于 2011-01-07T16:21:06.047 に答える
0

ローカルで開発し、カスタム マネージド DNS サービスを使用すると、別のエラーが発生する可能性があります。その場合、OpenDNS が行っているようなマネージド エラー ページが表示される可能性があります。

于 2011-04-08T15:45:41.017 に答える