[PHP]外部サーバーにあるファイルの有無を確認する

[PHP]外部サーバーにあるファイルの有無を確認する

check_outside_file_top

別サーバーや S3 にあるファイルの存在をチェックする

PHP にて画像や動画ファイルなどの有無を確認する場合は、file_exists() 関数を使う方が多いと思います。ただファイルの設置先が自分のサーバー内でないときには、file_exists() 関数は使用できません。

外部サーバーにあるファイルの有無の判定方法として良い方法が無いか確認した際に良い方法があったのでご紹介します。

Advertisement

ファイル存在確認を行う方法

PHP にて外部のサーバーにあるファイルの有無確認を行うときは、get_headers() 関数を使うと簡単にチェックすることができます。

扱い易いように関数形式のサンプルプログラムを載せておきます。

サンプルプログラム

 

get_headers() 関数を使う理由

上記のプログラムにて、ファイルの有無を判定する方法に file_get_contents() 関数などの GET メソッドを使用しても目標は達成できます。ただ GET メソッドはファイル本体も返却するため、画像や動画などの大きいファイルにアクセスしたときに応答速度が遅くなります。

get_headers() 関数は HEAD メソッドを使用するため、ファイルのサイズを問わずに一定の速度を実現できます。

サンプルとして get_headers() 関数で画像ファイルの情報を取得したときの実行結果を載せておきます。

画像ファイルのヘッダー情報を取得したサンプル

Advertisement

この記事が気に入ったら
いいね ! をお願いします

Twitter で

web開発カテゴリの最新記事