1. ホーム
  2. php

url が存在しない場合に、ファイル_get_contents を実行する

2023-08-09 05:22:14

質問

file_get_contents()を使って、URLにアクセスしています。

file_get_contents('http://somenotrealurl.com/notrealpage');

URLが実在しない場合、このようなエラーメッセージが返されます。どうすれば、このエラーメッセージを表示することなく、ページが存在しないことを知り、それに応じて行動するように、優雅にエラーにすることができるでしょうか?

file_get_contents('http://somenotrealurl.com/notrealpage') 
[function.file-get-contents]: 
failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found 
in myphppage.php on line 3

たとえば、zendでは次のようになります。 if ($request->isSuccessful())

$client = New Zend_Http_Client();
$client->setUri('http://someurl.com/somepage');

$request = $client->request();

if ($request->isSuccessful()) {
 //do stuff with the result
}

どのように解決するのですか?

この問題を解決するには HTTPレスポンスコード :

function get_http_response_code($url) {
    $headers = get_headers($url);
    return substr($headers[0], 9, 3);
}
if(get_http_response_code('http://somenotrealurl.com/notrealpage') != "200"){
    echo "error";
}else{
    file_get_contents('http://somenotrealurl.com/notrealpage');
}