очистка кеша для if(file_exists)

У меня возникла проблема с файлом file_exists. Пожалуйста, обратитесь к следующему коду:

echo '<a href = "/classifiedads4free-view-all-ads/'.$catid_related.'-'.$cat_name.'/'.$related_ads['0'].'-'.$ad_name.'">';
if(file_exists('/images/ads/'.$related_ads['0'].'a_t.jpg')){
    echo '<img src = "/images/ads/'.$related_ads['0'].'a_t.jpg">';
}
else{
    echo '<img src = "/images/ads/no-pre.png">';
}
    echo '</a>';

Я не мог заставить условие работать. Я имею в виду, что он не будет показывать изображения для всех, если первое изображение, которое я загружаю, не имеет значения pre.png. Даже когда я перехожу со страницы на другую, на которой есть изображение, оно все равно показывает no-pre.png. Я прочитал документы и понимаю, что проблема может заключаться в том, что мне нужно очистить кеш для файла file_exists, но я действительно не знаю, как и где его использовать.

Благодарю, если кто-нибудь может мне помочь здесь. Спасибо! оценил.

Обновление: я только что узнал, что это не кеш, так как я не запускаю несколько файлов file_exists в своем скрипте. Только 1. Я думаю проблема кроется в условии. Я могу показать изображение, если я поставлю:

   if(!file_exists('/images/ads/'.$related_ads['0'].'a_t.jpg'))//NOTICE the !

Но теперь все мои существующие файлы возвращают true, и я не могу показать свой no-pre.

Затем я подумал, что, возможно, мой URL-адрес файла неверен. Но если изображение может отображаться, когда file_exists возвращает false, тогда не должно ли изображение существовать ..?


person Lawrence    schedule 17.05.2012    source источник
comment
Нашел ответ. Проблема решена. file_exists не использует относительные пути. Поэтому я изменил свой URL-адрес file_exists на --› if(file_exists($_SERVER{'DOCUMENT_ROOT'}.'/images/ads/'.$related_ads['0'].'a.jpg ')){...код...} и это сработало!   -  person Lawrence    schedule 17.05.2012


Ответы (1)


Вам нужно запустить clearstatcache() перед запуском file_exists() во второй раз. Или, на всякий случай, вызывайте его перед file_exists() каждый раз.

person John Conde    schedule 17.05.2012
comment
Мне просто нужно добавить этот код? Хм. похоже проблема не в кеше.. - person Lawrence; 17.05.2012