• 締切済み

404 Not Found時の対処

画像のファイルサイズを表示するためのPHPを書いています。 $url = 'ttp://example.com/example.gif'; $get = file_get_contents("$url"); $size = ceil(strlen($get)/1024); echo "$size"."KB"; 上記の様にphpを書きました。 ファイルが存在しない場合、404 Not FoundとなりPHPがエラーを起こしてします。 404 Not Foundの場合は、「ファイルが存在しません」とかの表示にしたいんですが、どの様にすれば良いでしょうか? どうぞ宜しくお願い致します。

みんなの回答

  • mpx
  • ベストアンサー率71% (149/209)
回答No.4

こんなことがしたいのかな? <?php $url = 'ttp://example.com/example.gif'; $hdr=get_headers($url, 1); if (strpos($hdr[0],'404')!==false){ echo 'Not Found'; } else { $size = ceil($hdr['Content-Length']/1024); echo "$size"."KB"; } ?>

kooooooool
質問者

お礼

>>当方が利用しているサーバーがphp4のため、get_headersが利用できません。 >>php4でも利用できる様にするためには、どうすれば良いでしょうか? 上記で記入した内容の訂正です。 php4でget_headersする方法は調べて発見しました。 mpx様のアドバイス内容のコードを実行してみたところ、 URLが存在しない場合、$hdr=get_headers($url, 1);でエラーになってしまいます。 ■エラー内容。 Warning: get_headers() [function.get-headers]: php_network_getaddresses: getaddrinfo failed: Name or service not known

kooooooool
質問者

補足

お返事が遅くなり申し訳ありません。 アドバイスありがとうございます。 アドバイス内容の事を行いたいと思っています。 当方が利用しているサーバーがphp4のため、get_headersが利用できません。 php4でも利用できる様にするためには、どうすれば良いでしょうか? 宜しくお願い致します。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

じゃ、ソケットでhttp通信するのが妥当でしょうか・・・ http://php.benscom.com/manual/ja/ref.sockets.php とにかくhttpヘッダを得る方法を考える必要があります。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

では、PEARのHTTP_Requestでレスポンスの評価してみては? http://pear.php.net/manual/ja/package.http.http-request.response-eval.php

kooooooool
質問者

補足

アドバイスありがとう御座います。 大変申し訳ありますが、License上PEARは利用できません。 また、外部のツール(PEAR)等を使うつもりはありません。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

http://www.php.net/manual/ja/function.file-exists.php にurl確認チェックのサンプルがあがってます、参考までに

kooooooool
質問者

補足

アドバイスありがとう御座います。 上記サイトは質問を投稿する前に読ませて頂きました。 しかしながら、意図した動きをしてくれないので、こちらに投稿させて頂いた次第となります。