たとえば、次のコードを使用します。
$curl = curl_init();
curl_setopt_array( $curl, array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_URL => "$url" ) );
curl_exec( $curl );
$header = curl_getinfo( $curl, CURLINFO_HTTP_CODE );
curl_close( $curl );
$url = "http://upenn.edu"
動作しますが、動作し$url = "http://www.upenn.edu"
ます。
応答コードがない場合www.
はですが、応答コードが0
あるwww.
場合は200
です。
PHPを使用するget_headers("http://upenn.edu")
と、次の2つのエラーが発生します。
Warning: get_headers() [function.get-headers]: php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known
と
Warning: get_headers(http://upenn.edu) [function.get-headers]: failed to open stream: php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known
ただし、まったく同じコードを使用すると、http://google.com
(期待どおりhttp://www.google.com
に)機能します。
次に、などのWebサイトのhttp://www.dogpile.com
場合、www.
含まれている部分はの応答コードを返しますが、0
がない場合はwww.
、を取得し302
ます。
どうしてこれなの?信頼できる結果を保証するために使用するより良い方法はありますか(つまり、awww.
が存在しない場合でも、応答コードは返されますか?)
私はcURLを使用し、ヘッダーと応答コードを処理するのは初めてなので、助けていただければ幸いです。ありがとうございました。