2012-05-11 3 views
-1

Я видел для этого учебники по Интернету, но я не могу заставить его работать.Проверка файла существует, а не только URL

У меня это в цикле в то время, но это не имеет значения:

while($row = mysql_fetch_object($result)){ 
$image_url = $deviceimg.($row->Image); 
if(!file_exists($image_url)) 
{} 
else { 
$image_url = 'images/android.png'; 
} 

В принципе, им мою базу данных, все строки называемые изображения заполняются, но только некоторые из них имеют фактический файл. То, что я пытаюсь сделать, это проверить, действительно ли файл изображения существует на сервере, если он не использует изображение по умолчанию (images/android.png)

Независимо от того, что я делаю, он либо заменит ВСЕ изображения по умолчанию, или он просто будет использовать URL-адрес в базе данных, независимо от того, существует ли файл на самом деле.

+0

Прошу предоставить некоторую отладочную информацию, ака «Что вы пробовали?». Это просто сводится к неправильному пути, который можно легко найти, выполнив 'var_dump ($ image_url)' put перед 'if'. Что содержит '$ deviceimg'? – CodeCaster

ответ

1

Причина, по которой у вас возникла проблема, заключается в том, что вы обернули $image_url в одинарных кавычках, когда вы передаете ее file_exists(). Это проверяет, есть ли файл с буквальным именем $image_url, вместо использования содержимого переменной.

Изменить

if (!file_exists('$image_url')) 

в

if (!file_exists($image_url)) 

и он будет работать.

+0

Я только что обновил свой вопрос. Пробовал это и без двойных кавычек. Он по-прежнему возвращает пустые изображения, где файл не существует, и правильные изображения там, где они существуют – K20GH

+0

Вы уверены, что 'images/android.png' существует? Вызов 'file_exists()' на этом тоже ... – DaveRandom

+0

Если я заменяю оператор if, так что оператор else пуст, он заменяет ВСЕ изображения изображениями/android.png. Если я получаю свойства, где находится пустое изображение, его ссылка на уникальное изображение для каждой записи базы данных, которая не существует – K20GH

1

'$image_url' не анализируется содержимым переменной $image_url: он останется одним и тем же строковым литералом.

Удалить цитаты. Анализируются только переменные в двойных кавычках ("$image_url").

+0

Я только что обновил свой вопрос. Пробовал это и без двойных кавычек. Он по-прежнему возвращает пустые изображения, где файл не существует, и правильные изображения там, где они существуют – K20GH