Ви повинні використовувати абсолютний шлях, щоб побачити, чи існує файл.
$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";
}
Я проходжу тут зайву милю :). Оскільки цей код не потребує великого обслуговування та досить міцний, я б написав його як скорочення, якщо заява:
$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';