2010-11-30 6 views
2

왜 다음 작업을하지 않는 사람이 있습니까?PHP 이상한 file_exists 버그

$file = 'images/thumbs/1%20-%20Copy.jpg'; 
if(!file_exists($file)){ 
die('NOT THERE'); 
} 

echo 'Yes its there.'; 

문제는 공백으로 인한 것입니다. 나는 파일이 존재하는지 확인했다. dbl은 n 개의 트리플 체크 메신져 너트를 확인했다. :(파일 시스템이 아닌 HTTP를 통해

도움말

+0

btw 대소 문자 구분을 두 번 확인했습니다. aswell – Val

+0

이것은 상대 경로로, 현재 작업 디렉토리 ('getcwd()')에 대해 해석된다는 것을 의미합니다. 절대 경로도 확인 했습니까 ('realpath()')? – KingCrunch

답변

6

file_exists 작품 그래서 %20 그대로 %20 등의 공간으로 인식하지만,되지 않습니다, 사용 공간 대신 ​​:.

$file = 'images/thumbs/1 - Copy.jpg'; 
+0

... 그리고 완전을 기하기 위해 이름에 실제'% 20 '이 (가)있는 파일의 URL은'images % 2Fthumbs % 2F1 % 2520- % 2520Copy.jpg'이어야합니다. –

+1

@ Álvaro G. Vicario : 오히려'images/thumbs/1 % 2520- % 2520Copy.jpg'가 될 것입니다. – Gumbo

+0

네, 죄송 합니다만 실수로 슬래시를 인코딩했습니다. <:-) –

0
$file = rawurldecode('images/thumbs/1%20-%20Copy.jpg'); 
1

시도 이 두

$file = 'images/thumbs/1\ -\ Copy.jpg'; 
$file = 'images/thumbs/1 - Copy.jpg';