2013-03-23 4 views
0

file_exists(을 사용할 때 항상 false를 반환합니다. 그러나 파일은 실제로 존재하며 require을 사용하여로드 할 수 있습니다. 내가 페이지, 페이지 항상 exit()를로드 할 때file_exists가 항상 false를 반환하는 이유는 무엇입니까?

// Creating dependency lists. 
$data_dependency = array("mysql", "oracle", "postgresql", "sqlite", "access"); 

// Calling the dependecny files. 
foreach ($data_dependency as $list) { 
    $list = "class.data.$list.php"; 
    _system::debug("Calling required class $list ..."); 

    if (file_exists($list)) { 
     include($list); 
     _system::debug("Calling $list was successfull."); 
    } else { 
     _system::debug("Calling $list was failed. Now we close the system load."); 
     exit("Calling $list was failed. Now we close the system load."); 
    } 
} 

: 이것은 내 코드입니다. 그 이유는 file_exists() 함수가 항상 false를 반환한다고 생각합니다.

+1

절대 경로를 사용해보십시오. – C9HDN

+6

당신은 단수형 파일이 있다고 말하지만 어느 것이 든 존재하지 않는다면 5를 찾고 있습니다. – Crisp

+0

@Calum - 절대 경로를 사용하려고 시도했지만 여전히 false입니다. –

답변

-1

$list foreach 루프에서 잘못 설정되었을 수 있습니다. 시도해 봤어 $list="class.data.".$list.".php";?

+3

PHP는 변수를 큰 따옴표로 평가합니다. 그래서'$ list'의 그의 건설은 바로 – UnholyRanger

+0

'$ list' 구조가 맞습니다. '$ list'를 출력 할 때 출력은 "class.data.mysql.php"입니다. –

0

소개 file_exists()는 Php.net는

이 기능으로 인해 안전 모드 제한으로 접근 할 수없는 파일에 대한 FALSE를 반환한다고. 그러나 이러한 파일은 safe_mode_include_dir에 있으면 포함시킬 수 있습니다.

이것은 포함이 작동하고 존재 확인이 수행되지 않는다는 것을 설명 할 수 있습니다.

http://www.php.net/manual/en/function.file-exists.php

+1

'safe_mode'는 PHP 5.4.0에서'제거 된 '것이라고 생각합니다. PHP 5.4.7을 사용하고 있습니다. –

2

이 기능으로 인해 안전 모드 제한에 접근 할 수없는 파일에 대한 FALSE 반환합니다.

파일 경로에 $_SERVER['DOCUMENT_ROOT'] 변수를 사용하십시오.

1

절대 경로가 아닌 상대 경로 ex : $_SERVER['DOCUMENT_ROOT']

관련 문제