2012-05-17 3 views
1

file_exists와 관련된 문제가 있습니다. 다음 코드를 참조하십시오.if (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>'; 

작동 할 수없는 상태입니다. 첫 번째 이미지로드가 no-pre.png 인 경우 모든 이미지를 표시하지 않습니다. 사진이있는 다른 페이지로 이동해도 여전히 no-pre.png가 표시됩니다. 나는 문서를 읽고 그 문제가 file_exists에 대한 캐시를 지울 필요가있는 곳에서 거짓말을할지 모른다는 것을 이해하지만 실제로 사용하는 방법이나 장소는 모르겠다 ..

누군가 나를 도와 줄 수 있다면 고맙겠다. 감사! 고맙습니다.

업데이트 : 나는 스크립트에서 여러 file_exists를 실행하지 않으므로 캐시가 아닌 것으로 나타났습니다. 오직 1. 나는 문제가 그 상태에 있다고 생각한다.

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

을하지만 지금 내 모든 파일은 진정한 수익을 존재하고 난 내 어떤 사전이 표시되지 얻을 수 없습니다 난 내가 넣어해야 보여주기 위해 이미지를 얻을 수 있어요.

그런 다음 파일에 대한 내 URL이 잘못되었을 수도 있습니다. 그러나 file_exists가 false를 반환 할 때 이미지가 표시 될 수 있으면 이미지가 존재하지 않아야합니다 ..?

+0

답을 찾았습니다. 문제 해결됨. file_exists는 상대 경로를 사용하지 않습니다. 따라서 file_exists URL을 -> 으로 수정했습니다 (file_exists (** $ _ SERVER { 'DOCUMENT_ROOT'} **./images/ads/'.$ related_ads ['0 '].'). jpg ')) {... code ...} 그리고 작동했습니다! – Lawrence

답변

2

file_exists()을 두 번째 실행하기 전에 clearstatcache()을 실행해야합니다. 또는 안전을 위해 매번 file_exists() 전에 전화하십시오.

+0

이 코드를 추가하기 만하면됩니까? 흠. 문제가 캐시에 있지 않은 것처럼 보입니다. – Lawrence