Я работаю с codeigniter. Я хочу отображать изображения, но если какое-то изображение не существует, оно должно показывать image-not-found-medium.jpg
которое является фиктивным изображением.
ниже мой код
<?php $image_path_medium = site_url('assets/images-products/medium'); $image_not_found_medium = $image_path_medium . "/" . "image-not-found-medium.jpg"; $image_name_with_path = $image_path_medium . "/" . $home_technology[$key]->product_sku . "-" . "a" . "-medium.jpg"; if (file_exists($image_name_with_path)) { echo $image_name_with_path; } else { echo $image_not_found_medium; } ?>
но он всегда показывает $image_not_found_medium
я думаю, что есть проблема с моим if condition
. Пожалуйста помоги.
<?php $image_path_medium = site_url('assets/images-products/medium'); $image_not_found_medium = $image_path_medium . "/" . "image-not-found-medium.jpg"; $image_name_with_path = $image_path_medium . "/" . $home_technology[$key]->product_sku . "-" . "a" . "-medium.jpg";//this is your image url $image_file_path=FCPATH.'assets/images-products/medium'. $home_technology[$key]->product_sku . "-" . "a" . "-medium.jpg";//this is your file path if (file_exists($image_file_path)) //file_exists of a url returns false.It should be real file path { echo $image_name_with_path; } else { echo $image_not_found_medium; } ?>
Вы используете абсолютный путь для существования файла, который является неправильным. Вы должны использовать реальный путь, потому что функция file_exists () проверяет, существует ли файл или каталог на текущем сервере.
Если папка с вашими ресурсами находится в корневом каталоге, просто используйте getcwd () – Получает текущий рабочий каталог как
$image_path_medium = getcwd().'assets/images-products/medium';
В противном случае укажите правильный путь к папке с ресурсами, например
$image_path_medium = getcwd().'application/views/assets/images-products/medium';
Вместо file_exists () предпочитает is_file () при проверке файлов, так как file_exists () возвращает true в каталогах. Кроме того, вы можете увидеть, возвращает ли getimagesize () FALSE, чтобы убедиться, что у вас есть изображение.