ข้ามไปที่เนื้อหาหลัก

บทความ

กำลังแสดงโพสต์จาก มีนาคม, 2014

การใช้งาน คำสั่ง file_exists() อย่างเข้าใจ

นี่อาจจะไม่เรื่องใหม่อะไรสำหรับ Professional ทั้งหลาย แต่ว่าสำหรับผมที่เข้าใจ และใช้งานอย่างผิดๆ มาตลอด จนบางทีก็เข้าใจว่า เราเขียนผิด หรือ คำสั่งมันใช้งานไม่ได้

วันนี้จะขอมาพูดถึงเรื่องของคำสั่ง PHP ที่ชื่อ file_exists เป็นคำสั่งที่ใช้สำหรับตรวจสอบไฟล์ว่ามีอยู่จริงหรือไม่? ตัวอย่างการใช้งานแบบผิดๆ

ที่ผมใช้ก็คือ

file_exists('/images/news/helloworld.jpg');

ผลลัพธ์ที่ได้คือ FALSE ถึงแม้ว้าจะมีไฟล์นั้นอยู่จริงก็ตาม ซึ่งในความเป็นจริงแล้ว การใช้งานที่ถูกต้องคือ

file_exists($_SERVER['DOCUMENT_ROOT'] . '/images/news/helloworld.jpg');

จากตัวอย่างที่ถูกต้อง ทำให้เข้าใจแบบง่ายๆ ว่าคำสั่ง file_exists นั้นใช้สำหรับเช็ค path ในโฟลเดอร์จริงๆ เท่านั้น ไม่สามารถเช็คจาก URL ได้ อันนี้เป็นเรื่องง่ายๆ ที่ผมเข้าใจผิดมาอยู่นานเลยทีเดียวเลยต้องขอลงบันทึกเตือนตัวเองไว้อีกที :3


ข้อควรระวังการตั้งชื่อไฟล์ สำหรับการใช้งานบน Hosting

หลายๆ คน ปกติมักจะทำงานบน Localhost ซึ่งเป็นเรื่องปกติอยู่แล้ว แต่ปัญหาที่มักจะพบบ่อยๆ ในขั้นตอนปิดงาน คือ การอัพงานเราขึ้น Hosting ซึ่งบางครั้งหากเราทำงานบน Win OS ก็มักจะไม่ทราบถึง Case Insensitive ของพวก OS ที่เป็น unix ยกตัวอย่างง่ายๆ Linux ล่าสุดงานที่ผมพัฒนาผ่าน Yii Framework รันบนเครื่องก็ปกติ พอเอาขึ้น Host เกิดปัญหาทันที

ปัญหาที่พบก็ คือ เรื่องการตั้งชื่อไฟล์ และ การเรียกหา ไฟล์ ซึ่งก็คงไม่พ้น ตัวเล็ก ตัวใหญ่ ที่ไม่เหมือนกัน ดังนั้นควรตั้งชื่อไฟล์ และเรียกหาให้ถูกต้องเป๊ะๆ ไม่งั้นจะต้องมานั่งแก้ทีหลัง ถ้าหากระบบใหญ่มากๆ ก็จะแก้ลำบากนะครับ