2013-01-05 1 views
1

나는 어려움을 겪었습니다. 안전 모드가 해제되어 있으면 파일이 존재합니다.file_exists는 파일 이름이 변수를 통해 전달 될 때 false를 반환합니다.

이 코드 :

$dir = "textfiles" 
chdir('../'.$dir."/"); 
    //using a Windows Slash here(Wamp Stack, on Windows 7 Dev environment 

$filename = getcwd() ."\\". $row[0]; 

     //echoing this outputs: 
     //C:\wamp\www\wordpress\textfiles\New Text Document.txt 


$filename = str_replace("\\","\\\\",$filename); 

     //echoing this outputs C:\\wamp\\www\\wordpress\\textfiles\\New Text Document.txt 
     //escaping slashes in filename to prevent escaping. I SUSPECT my issue may be 
     // related to this 

    //if (file_exists("C:\\wamp\\www\\wordpress\\textfiles\\New Text Document.txt")) { 
      //Line above is commented out, but when it replaces the line below, this thing      
      //returns True 


if (file_exists($filename)) {echo "Yes";} 
    else { echo $filename;} 
+0

첫 줄에 세미콜론이없는 이유는 오타가 있습니까? – inhan

+0

또한 구분 기호를 명시 적으로 쓰는 대신 디렉터리 상수 [**'DIRECTORY_SEPARATOR' **] (http://php.net/manual/en/dir.constants.php)를 사용할 수 있습니다. – inhan

답변

0

을 주석 라인

/* $filename = str_replace("\\","\\\\",$filename); */ 

그리고 당신의 코드가 작동합니다.

+0

불행히도, 아니요. 나는 여러 번 시도해 보았고, 다시 시도했다. 응답 해 주셔서 감사합니다. –

+0

수정 : 맞습니다. 데이터베이스에서 데이터를 가져 왔기 때문에 파일 이름 끝에 잘못된 공간이 있습니다. 간단한 작은 트림() 내 문제를 해결 –

+0

그럼 왜 그런 공간이 있는지 알아낼 필요가 ;-) – Aivar