Ben bir dosya belirtilen konumda ($ yol. $ File_name) HDD'nin üzerinde olup olmadığını kontrol etmeniz gerekir.
is_file()
and file_exists()
a> işlevleri ve hangi arasındaki fark PHP kullanmak daha iyi / hızlı hangi mi?
Ben bir dosya belirtilen konumda ($ yol. $ File_name) HDD'nin üzerinde olup olmadığını kontrol etmeniz gerekir.
is_file()
and file_exists()
a> işlevleri ve hangi arasındaki fark PHP kullanmak daha iyi / hızlı hangi mi?
Verilen yolu bir dizinin işaret ediyorsa is_file()
false
dönecektir. file_exists()
true
dönecektir eğer geçerli bir dosya or dizin yolunu puan verilir. Yani sizin ihtiyaçlarınıza tamamen bağlı olacaktır. Eğer bir dosya ya da değilse, specifically bilmek kullanmak istiyorsanız is_file()
. Aksi takdirde, kullanımı file_exists()
.
is_file()
hızlı olduğunu, ancak son kriter file_exists()
Benim için biraz daha hızlı olduğunu gösteriyor. Bu yüzden sunucusuna bağlıdır sanırım.
Benim testi kriter:
benchmark('is_file');
benchmark('file_exists');
benchmark('is_readable');
function benchmark($funcName) {
$numCycles = 10000;
$time_start = microtime(true);
for ($i = 0; $i < $numCycles; $i++) {
clearstatcache();
$funcName('path/to/file.php'); // or 'path/to/file.php' instead of __FILE__
}
$time_end = microtime(true);
$time = $time_end - $time_start;
echo "$funcName x $numCycles $time seconds <br>\n";
}
Edit: Yorumlarınız için teşekkür Tivie @. 1000 10k devir sayısı değişti. Sonuç:
zaman dosya exists:
is_file x 10000 1,5651218891144 saniye
File_exists x 10000 1,5016479492188 saniye
is_readable x 10000 3,7882499694824 saniye
zaman dosya does not exist:
is_file x 10000 ,23920488357544 saniye
File_exists x 10000 ,22103786468506 saniye
is_readable x 10000 ,21929788589478 saniye
Edit: taşındı clearstatcache (); döngü içinde. Teşekkürler CJ Dennis.