好吧,我创建将网址/管理我的自定义博客的管理界面。
是否有可能对我来说,能够使用相同的包括(包括自动加载),作为根目录。
如果可能的话,我也想能够让他们去说的index.php在/变化从/管理员访问时../index.php自动校正导航的链接。
谢谢,尼科
好吧,我创建将网址/管理我的自定义博客的管理界面。
是否有可能对我来说,能够使用相同的包括(包括自动加载),作为根目录。
如果可能的话,我也想能够让他们去说的index.php在/变化从/管理员访问时../index.php自动校正导航的链接。
谢谢,尼科
造成这种情况的最佳做法是定义一个包含一切位于下的目录“ABSOLUTE_PATH”不变。 在此之后,你可以简单地复制和粘贴的一切,因为它定义“完整”的路径,不从目录更改为目录。
例
define("ABS_PATH", $_SERVER['DOCUMENT_ROOT']);
or
define("ABS_PATH", dirname(__FILE__));
// This defines the path as the directory the file is in.
然后,在任何时候,你可以简单地做到这一点,包括文件
include(ABS_PATH . "/path/to/file");
最简单的方法是使用绝对pathes /网址。
对于网址,定义一个常量/变量的地方,指向您的应用程序,像根:
define('ROOT_URL', 'http://www.example.com');
要么
$root_url = 'http://www.example.com';
而在每一个环节都使用它,比如:
<a href="{$root_url}/my-page.php">blah</a>
这样一来,始终OK(和一天你在另一台服务器上安装的项目,或子目录中,你只有一个常数/变量修改,一切仍然有效)
对于包括/要求,一定要使用绝对pathes过; 一个解决方案是使用dirname
,像这样:
include dirname(__FILE__) . '/my_file.php';
include dirname(__FILE__) . '/../my-other-file.php';
__FILE__
是当前文件,你在哪里写这条线; dirname
获取路径(完整路径),以包含该文件的目录。
就这样,你永远不必担心你的文件的相对路径。
然而,另一种答案将类似于前两个建议合并。 你可以定义常量:
define('ABSPATH', dirname(__FILE__).'/');
然后,假设config.php
需要被列入网站,那么你可以使用下面的语句来实现这一点的许多文件:
include(ABSPATH.'config.php');
希望这可以帮助。
我已经在过去使用的functions.php另一种选择是一类自动加载。
//Class Autoloader
spl_autoload_register(function ($className) {
$className = strtolower($className);
$path = "includes/{$className}.php";
if (file_exists($path)) {
require_once($path);
} else {
die("The file {$className}.php could not be found.");
}
});
这工作在某些情况下,一直帮助我过去的时候,我不希望定义一个绝对$根URL。