คุณต้องใช้เส้นทางสัมบูรณ์เพื่อดูว่ามีไฟล์อยู่หรือไม่
$abs_path = '/var/www/example.com/public_html/images/';
$file_url = 'http://www.example.com/images/' . $filename;
if (file_exists($abs_path . $filename)) {
echo "The file exists. URL:" . $file_url;
} else {
echo "The file does not exist";
}
หากคุณกำลังเขียน CMS หรือ PHP framework เท่าที่ฉันรู้ว่าทั้งหมดได้กำหนดค่าคงที่สำหรับเส้นทางรูทของเอกสาร
เช่น WordPress ใช้ ABSPATH ซึ่งสามารถใช้ได้ทั่วโลกสำหรับการทำงานกับไฟล์บนเซิร์ฟเวอร์โดยใช้รหัสของคุณและ URL ของไซต์
ตัวอย่าง Wordpress:
$image_path = ABSPATH . '/images/' . $filename;
$file_url = get_site_url() . '/images/' . $filename;
if (file_exists($image_path)) {
echo "The file exists. URL:" . $file_url;
} else {
echo "The file does not exist";
}
ฉันจะไปอีกไมล์ที่นี่ :) เนื่องจากรหัสนี้ไม่ต้องการการบำรุงรักษามากนักและค่อนข้างมั่นคงฉันจะเขียนด้วยคำสั่ง shorthand if:
$image_path = ABSPATH . '/images/' . $filename;
$file_url = get_site_url() . '/images/' . $filename;
echo (file_exists($image_path))?'The file exists. URL:' . $file_url:'The file does not exist';
คำสั่งชวเลข IF อธิบาย:
$stringVariable = ($trueOrFalseComaprison > 0)?'String if true':'String if false';