PHP には、is_file と file_exists という 2 つの組み込み関数が用意されています。どちらも、適切な場合にファイルが存在するかどうかを判断するために使用できます。この記事では、どちらを使用するのがよいかを簡単に説明します。
以下の具体的な例と目に見えるデータを見てみましょう。 is_file と file_exists を使用してファイルの存在を検出し、それぞれ 1000 回実行し、所要時間を記録します。 ファイルは存在します(カレントディレクトリ) is_file:0.4570ms file_exists:2.0640ms ファイルは存在します(絶対パスレベル3/www/hx/a/) is_file:0.4909ms file_exists:3.3500ms ファイルが存在します(絶対パスレベル5/www/hx/a/b/c/) is_file:0.4961ms file_exists:4.2100ms ファイルが存在しません(カレントディレクトリ) is_file:2.0170ms file_exists:1.9848ms ファイルが存在しません(絶対パスレベル5/www/hx/a/b/c/) is_file:4.1909ms file_exists:4.1502ms ディレクトリが存在します ファイル_存在:2.9271ms is_dir:0.4601ms ディレクトリが存在しません ファイル_存在:2.9719ミリ秒 is_dir:2.9359ms is_file($file) file_exists($file) $file がディレクトリの場合、is_file は false を返し、file_exists は true を返します ファイルが存在する場合、is_file は file_exists よりもはるかに高速です。 ファイルを検出するディレクトリが深いほど速度の差は大きくなりますが、少なくとも 4 倍は速くなります。 ファイルが存在しない場合、is_file は file_exists よりも少し遅くなりますが、無視しても問題ありません。 ディレクトリが存在する場合、is_dir は file_exists よりもはるかに高速です。 ディレクトリが存在しない場合、is_dir は file_exists よりも少し遅くなりますが、無視しても問題ありません。 あなたは賢明なので、Programmer's Home で次のような概要を理解していると思います。 1. ファイルが存在するかどうかを確認するには、関数 is_file() を使用します。 2. ディレクトリが存在するかどうかを確認するには、関数 is_dir() を使用します。 3. 受信パラメータがファイルであるかディレクトリであるかわからない場合は、file_exists を検討できます。そうしないと、あまりにも孤独になります。 |