我们似乎在1个特定服务器上的spl_autoload有一个非常奇怪的问题。 警告:spl_autoload()[function.spl-autoload]:无法访问file.php
public function loadClass($className) {
if(substr($className, -5) == 'Override') {
$classes = glob(_ROOT_DIR_ . 'classes/*/override/*/*.php');
foreach($classes AS $class) {
$explodePath = explode('/', $class);
$explodePath = array_reverse($explodePath);
if(file_exists(_ROOT_DIR_.'classes/'.$explodePath[3].'/override/'.$explodePath[1].'/'.$explodePath[0])) {
set_include_path(get_include_path().PATH_SEPARATOR._ROOT_DIR_.'classes/'.$explodePath[3].'/override/'.$explodePath[1].'/');
spl_autoload(strtolower($className));
}
}
}
return FALSE;
}
此外,我已经检查过并在WHM面板中显示包含路径设置为 :/ usr / lib中/ PHP:在/ usr / local / lib目录/ PHP的
这个特殊的服务器是Linux RedHat-9.3.6,运行PHP 5.3.8& eAccelerator在 上面的代码已经在其他10台服务器上进行了测试,并且运行正常,所以真的不知道为什么会在这个特定的服务器上发生这种情况。
我们真的想使用spl_autoload方法而不是include / require,这会降低我们的应用程序速度。 我希望有人可以提供一些帮助我们解决这个问题的建议。