PHP包含路径,特别是始终位于根文档
我对include路径以及它们是如何写入的理解很模糊,我知道如何在PHP包含路径,特别是始终位于根文档,php,ini,include-path,Php,Ini,Include Path,我对include路径以及它们是如何写入的理解很模糊,我知道如何在ini文件中设置它们,以及如何在功能上执行set\u include\u path只是不知道如何使每次都准确无误 因此,我有一个管理自动加载文件,它包含在我所有的头文件中,用于注册spl\u autoload\u register函数。我只是在我的错误日志文件中不断出现错误。上面说 PHP Fatal error: Class 'Configurate' not found in /home/~username~/public
ini
文件中设置它们,以及如何在功能上执行set\u include\u path
只是不知道如何使每次都准确无误
因此,我有一个管理自动加载文件,它包含在我所有的头文件中,用于注册spl\u autoload\u register
函数。我只是在我的错误日志文件中不断出现错误。上面说
PHP Fatal error: Class 'Configurate' not found in
/home/~username~/public_html/testing_ini.php on line 5
因此,我要寻找的是如何将include路径设置为始终位于public\u html
目录之前的目录,无论我在哪里
我已尝试将include路径设置为
.:/opt/alt/php5/usr/share/pear:/opt/alt/php5/usr/share/phphome/~username~/classes/Configurate.php
但我仍然得到了错误。有什么帮助和提示来理解这整件事吗?我在相对路径上吮吸
根据要求的spl\u自动加载\u寄存器
功能
<?php
$ini = parse_ini_file("configurations.ini",true);
foreach($ini as $section) {
foreach($section as $key=>$value ) {
define("__".strtoupper($key)."__",$value);
}
}
//if(__USERNAME__ == null) {
// header("Location: /setup.php?step=1");
// exit();
//}
spl_autoload_register(function($class) {
try {
if(!file_exists("../classes/{$class}.php")){
throw new Exception("/classes/{$class}.php does not exist error on line ". __LINE__." in file ". realpath(__FILE__));
} else
require_once "../classes/{$class}.php";
} catch (Exception $ex) {
echo $ex->getMessage()."<br>";
echo $ex->getCode();
}
});
getcwd()
和许多其他方法对我不起作用。虽然我发现这个方法在任何目录下都非常适合我
set_include_path(
dirname( $_SERVER["DOCUMENT_ROOT"] )
);
希望这能帮助其他人走出文档根目录并像我一样使用它。你能展示你的spl\u autoload\u register
功能吗?选中此选项,在包含文件时不应该使用相对路径。始终使用绝对路径。试试这个:getcwd()/classes/{$class}.php'
谢谢伙计们,我现在就去电脑旁边看看,打电话就行了。@Darren那不起作用了,我现在还在…/public\u html/classes/Configurate.php中,这不是我想要的