2014-09-10 2 views
0

namespace를 사용 중이고 자동로드가 필요합니다. __auto_load 함수에서 var class_name은 백 슬래시와 함께 제공됩니다.PHP에서 백 슬래시 오류가 필요합니다.

Warning: require(controller\Example\Test.php): failed to open stream: No such file or directory in ...

을하지만 controller/Example/Test.php;의 작동을 필요로하려고하면 : 그리고이 발생합니다.

나는 다른 서버와 그 서버에서 같은 것을 실행 해 보았습니다. 그렇다면 설정이나 PHP 버전의 문제라고 생각합니다.

이제 백 슬래시를 슬래시로 바꾸어서 해결할 수 있지만이 문제의 원인을 알고 싶습니다.

+1

Linux 경로 사용 '/' –

+0

autoload() 함수의 구현을 표시 할 수 있습니까? – Crackertastic

답변

2

백 슬래시가 슬래시와 다르기 때문에 백 슬래시는 종종 이스케이프 문자를위한 시간입니다. Windows는 디렉토리 구조에 백 슬래시를 사용하지만 대부분의 Unix 기반 운영 체제는 일반 슬래시를 사용합니다.


당신이 실행하는 경우 :

[email protected]:~$ cd \ 
> 

리눅스는 사용자가 입력/줄 바꿈을 탈출하고 당신이 당신의 명령을 입력 유지 할 수 있도록 노력하고있다 생각합니다. 당신이 루트 디렉토리로 이동합니다 슬래시를 사용하는 경우이 다릅니다

[email protected]:~$ cd/
[email protected]:/$ 

당신은 항상 같은과 PHP의 상수 DIRECTORY_SEPARATOR을 사용할 수 있습니다

:

$path = join(DIRECTORY_SEPARATOR, array('controller', 'Example', 'Test.php'); 
require($path); 

출처 : Anonymous

+0

감사합니다. 내 의심을 해결했습니다. – Christian