문제

enter image description here

나는 다음과 같은 디렉토리 구조를 가지고 있으며 모든 수업을 그 안에 넣습니다. classes/ 아래에 표시된 것처럼 header.php 둘 다 모든 파일을 호출하고 모든 파일이 공유하는 기타 중요한 설정이 있습니다.

이제 내가 사용하면 spl_autoload_register() 이 방법:

spl_autoload_register(function($class){
        include 'classes/'. $class .'.class.php';
    });

내부에 inc/header.php 파일을 제출하고 이 전화로 전화하세요 header.php 내로부터 index 파일을 다운로드하면 로컬 호스트에서는 제대로 작동하지만 모든 스크립트를 있는 그대로 라이브 호스트에 업로드하면 다음과 같은 오류가 발생합니다.

Warning: include(classes/filehandler.class.php) [function.include]: failed to open stream: No such file or directory in /home/.../public_html/....com/inc/header.php on line 9 

Line 9spl_autoload_register()

어떻게 이런 일이 일어날 수 있는지 이해가 안 되고, 누군가가 전혀 아이디어를 갖고 있기를 바랍니다.

감사해요

도움이 되었습니까?

해결책

내 의견이 무엇을 의미하는지 보여주기 위해 index.php 파일에 다음 코드를 추가하고 다른 파일에서 자동 로더를 제거하십시오.

spl_autoload_register(function($class){
    $classesPath = dirname(__FILE__) . '/classes/';
    if (is_file($classFile = $classesPath . $class.'.class.php')) {
        include $classFile;
    }
});

inc/header.php의 경우:

spl_autoload_register(function($class){
    $classesPath = dirname(__FILE__) . '/../classes/';
    if (is_file($classFile = $classesPath . $class.'.class.php')) {
        include $classFile;
    }
});
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top