次のコードを使用してテストできます:
コードをコピーします コードは次のとおりです:
$filename = 'test.txt';
ファイル名が存在します!n";
} else {echo "$ filename no exists!n";上記のコードでは、is_file 関数を初めて使用してファイルが存在するかどうかを確認し、次に sleep 関数を呼び出して 10 秒間スリープします。この 10 秒以内に、test.txt ファイルを削除する必要があります。最後に、is_file 関数を 2 回目に呼び出した結果を確認します。出力結果は次のとおりです。
test.txt が存在します!
test.txt が存在します!
そうです、「test.txt が存在します!」が 2 回出力されました。これはなぜでしょうか。理由は、is_file にキャッシュがあるためです。 is_file 関数が初めて呼び出されたとき、PHP はファイル属性 (file stat) を保存します。is_file が再度呼び出されたとき、ファイル名が最初と同じであれば、そのファイルは直接キャッシュに返されます。
is_file を file_exists に変更してはどうでしょうか?上記のコードの is_file 関数を file_exists 関数に変更し、上記のテスト メソッドを再度使用してテストできます。結果は次のとおりです:
test.txt は存在します!
test.txt は存在しません!
file_exists を 2 回呼び出すと、ファイルが存在しないことが返されます。これは、file_exists 関数がキャッシュされていないためです。 file_exists を指定すると、ディスクが検索されてファイルが存在するかどうかが確認されるため、2 回目のみ false が返されます。
ここまで言っておきますが、is_file の方がパフォーマンスが良いと主張するのであれば、それは仕方がありません。
http://www.bkjia.com/PHPjc/736811.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/736811.html
技術記事
次のコードを使用してテストできます。 次のようにコードをコピーします。 ?php $filename = 'test.txt'; if (is_file($filename)) { echo "$filename names!n"; $filena ...