Я был обеспокоен этой проблемой некоторое время.
Я пытаюсь загрузить изображения в PHP, но есть изображения в формате jpg и JPG, и когда я пытаюсь загрузить изображения в формате jpg, файлы JPG не обнаруживаются (очевидно)
$img1 = '<img src="imgs/'.$firstImage.'.jpg"></img>';
$img2 = '<img src="imgs/'.$secondImage.'.jpg"></img>';
$img3 = '<img src="imgs/'.$thirdImage.'.jpg"></img>';
$img4 = '<img src="imgs/'.$fourthImae.'.jpg"></img>';
Есть идеи, как решить эту проблему?
Я пытался с помощью if_exists
но это не сработало
if (file_exists('http://website_url.nl/imgs/'.$firstImage.'.jpg')) {
$img1 = '<img src="imgs/'.$firstImage.'.jpg"></img>';
} else {
$img1 = '<img src="imgs/'.$firstImage.'.JPG"></img>';
}
Проблема сейчас в том, что он не может найти изображения с обычным JPG. Например я пытаюсь загрузить 23.jpg
но скрипт пытается загрузить 23.JPG
потому что файл 23.jpg
не существует, в то время как он существует и помещается в папку, в то время как 23.JPG
нет. Работает с файлами JPG. Например DOC_202.JPG
найден потому что DOC_202.jpg
не существует, поэтому он загружает JPG
один. Но с jpg
те, которые не будут работать. Какие-либо решения?
С наилучшими пожеланиями,
Просто проверьте файл в вашем локальном каталоге, не используйте URL
if(file_exists('imgs/'.$firstImage.'.jpg')) {
Большинство упаковщиков URL не поддерживают stat (), смотрите
http://www.php.net/manual/en/function.file-exists.php (синяя заметка о php5 в конце) и http://www.php.net/manual/en/wrappers.php
Редактировать:
PS: примечание: при использовании windows разделитель каталогов — это обратная косая черта ‘\’, в linux это косая черта ‘/’. Смотрите глобальную константу DIRECTORY_SEPARATOR
если вам нужно глобальное решение.
Функция file_exists проверяет локальную систему, существует ли файл или нет, а не внешний URL.
http://php.net/manual/en/function.file-exists.php
Поэтому, если вы измените параметр file_exists на свой локальный адрес, он должен работать. Например:
if(file_exists('/webdirectory/public_html/project/images/' . $image1 . '.jpg')){
//do stuff
}
Чувствительность к регистру file_exists зависит от файловой системы, в которой он находится. На Unix-серверах дело о файле имеет значение, и так будет и file_exists.
Этот комментарий в руководстве по PHP предлагает способ проверки через URL: http://php.net/manual/en/function.file-exists.php#75064