所以,我在YouTube上关注了一个很好的PHP OOP教程,得到了我需要的代码,但现在我正在尝试将它实现到我的网站中,而且我遇到了一些错误问题。< / p>
这是我的文件夹结构,因此您可以看到最新情况。根文件夹'modelawiki'位于XAMPP Localhost Server中的'htdocs'文件夹中。我的'htdocs'文件夹中的其他文件夹中有其他网站。 http://imgur.com/a/vs0qt
在我的根文件夹(modelawiki)中的index.php文件中,我需要使用以下代码获取'core / init.php'文件:
require_once 'core/init.php';
哪个执行得很好。但当我进入我的'admin'文件夹并尝试执行:
require_once '../core/init.php';
我想出现以下错误:
警告:require_once(functions / sanitize.php):无法打开流:第31行/Applications/XAMPP/xamppfiles/htdocs/modelawiki/core/init.php中没有此类文件或目录
致命错误:require_once():在/ Applications / XAMPP / xamppfiles / htdocs / modelawiki /中打开所需的'functions / sanitize.php'(include_path ='。:/ Applications / XAMPP / xamppfiles / lib / php')失败第31行的core / init.php
继承我的'core / init.php'代码:
// Auto Load Classes
spl_autoload_register(function($class) {
require_once 'classes/' . $class . '.php';
});
// Load Functions
require_once 'functions/sanitize.php';
如何在我的'core / init.php'文件中修复此问题,以便能够从根文件夹和我的文件夹树中的任何更深层文件夹加载?我还需要确保一旦将其上传到我的Network Solutions FTP服务器,它也将运行。
答案 0 :(得分:1)
您可以使用绝对路径:
在类加载器中获取root目录
// if called in core/init.php
// the following will be the absolute path of whatever folder core is in
$rootdir = dirname(dirname(__FILE__));
所以从那里你会有这样的事情:
$rootdir = dirname(dirname(__FILE__));
// Auto Load Classes
spl_autoload_register(function($class) {
require_once $rootdir . 'classes/' . $class . '.php';
});
// Load Functions
require_once $rootdir . 'functions/sanitize.php';
答案 1 :(得分:0)
我认为您应该更改init.php文件,如下所示。你必须正确地给出路径。
require_once'../ functions / sanitize.php';