একটি নির্দিষ্ট স্থানে ($ পথ। $ ফাইল_নাম) কোনও ফাইল এইচডিডি তে আছে কিনা তা আমাকে পরীক্ষা করতে হবে।
কোনটি is_file()
এবং file_exists()
ফাংশনগুলির মধ্যে পার্থক্য এবং কোনটি পিএইচপি ব্যবহার করার জন্য আরও ভাল / দ্রুত?
একটি নির্দিষ্ট স্থানে ($ পথ। $ ফাইল_নাম) কোনও ফাইল এইচডিডি তে আছে কিনা তা আমাকে পরীক্ষা করতে হবে।
কোনটি is_file()
এবং file_exists()
ফাংশনগুলির মধ্যে পার্থক্য এবং কোনটি পিএইচপি ব্যবহার করার জন্য আরও ভাল / দ্রুত?
উত্তর:
is_file()
false
প্রদত্ত পথটি যদি কোনও ডিরেক্টরিতে নির্দেশ করে তবে ফিরে আসবে । প্রদত্ত পথটি যদি কোনও বৈধ ফাইল বা ডিরেক্টরিতে নির্দেশ করে তবে file_exists()
ফিরে আসবে । সুতরাং এটি সম্পূর্ণরূপে আপনার প্রয়োজনের উপর নির্ভর করবে। আপনি যদি এটি নির্দিষ্টভাবে জানতে চান তবে এটি কোনও ফাইল বা না, ব্যবহার করুন । অন্যথায়, ব্যবহার করুন ।true
is_file()
file_exists()
is_file()
দ্রুততম, তবে সাম্প্রতিক মাপদণ্ডটি file_exists()
আমার কাছে কিছুটা দ্রুত that সুতরাং আমি অনুমান করি এটি সার্ভারের উপর নির্ভর করে।
আমার পরীক্ষার মানদণ্ড:
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";
}
সম্পাদনা: @ টিভি মন্তব্য করার জন্য ধন্যবাদ। চক্রের সংখ্যা 1000 থেকে 10 কে পরিবর্তিত হয়েছে। ফলাফল হলো:
যখন ফাইল বিদ্যমান :
is_file x 10000 1.5651218891144 সেকেন্ড
file_exists x 10000 1.5016479492188 সেকেন্ড
is_readable x 10000 3.7882499694824 সেকেন্ড
যখন ফাইলটির অস্তিত্ব নেই :
is_file x 10000 0.23920488357544 সেকেন্ড
file_exists x 10000 0.22103786468506 সেকেন্ড
is_readable x 10000 0.21929788589478 সেকেন্ড
সম্পাদনা করুন: সরানো ক্লিয়ারস্ট্যাটচে (); লুপ ভিতরে। ধন্যবাদ সিজে ডেনিস
is_file()
চেয়ে দ্রুত খুঁজে পেয়েছি file_exists()
। যদি আপনি জানেন যে এটি কোনও ফাইল (এবং কোনও ডিরেক্টরি নয়) তবে অবশ্যই পরিবর্তে এটি ব্যবহার করুন।
is_dir()
পরিণত হয় যদি file_exists()
এটির চেয়ে 20% দ্রুত হয় (যা এটি বিটিডব্লিউ নয়), তবে এটি একটি গুরুত্বপূর্ণ পার্থক্য হতে পারে যদি আপনি কেবল যাইহোক ডায়ারদের জন্য পরীক্ষা করছেন ...
আমরাও।
is_file () ফাইলটি উপস্থিত না থাকলে সত্য ফিরে আসতে পারে।
file_exists () ফাইলটি ডিরেক্টরি হলে সত্যটি ফিরে আসতে পারে।
সুতরাং এটির যদি কোনও ফাইল হওয়া দরকার এবং এটির উপস্থিতি থাকা দরকার তবে আপনার উভয়ের প্রয়োজন।
গতি এখানে গুরুত্বপূর্ণ নয় কারণ তারা এক নয়। শুধুমাত্র একটি ফাংশন সম্পর্কিত হলে একটি ব্যবহার করুন এবং এটি আরও দ্রুত হবে।
আমি জানি এই পোস্টটি পুরানো তবে এই ফাংশনগুলির মধ্যে পার্থক্য কেবল তাদের আচরণ নয়। আপনি যদি বড় ফাইলের অস্তিত্ব পরীক্ষা করতে is_file () ব্যবহার করেন তবে 2 টিরও বেশি যান। আপনি অবাক হবেন। ফাইল বিদ্যমান নেই। :( তবে আপনি যদি ফাইল_একজিস্ট () দিয়ে পরীক্ষা করেন তবে তা কার্যকর।