许多用户建议我创建了一个文件globals.php
,其中我:
<?php
define('ROOT_DIR', __DIR__);
?>
然后我将此文件包含在网站的每个文件中。
但是现在当我将这个文件包含在其他文件中时会出现问题。
E.g。网站结构:
/en/index.php
/header.php
/globals.php
现在,当我在header.php
index.php
时
<?php
//header.php
include 'globals.php';
//index.php
include '../globals.php';
include '../header.php';
?>
现在header.php
找不到globals.php'
,因为它搜索'../globals.php'
。
我该如何解决这个问题?
答案 0 :(得分:1)
让我们假设您的globals.php文件位于文档的配置目录中
所以你有
/index.php
/config/globals.php
一个好的方法可能是通过require_once($_SERVER["DOCUMENT_ROOT"]."/config/globals.php);
包含globals.php,无论你在哪个目录中,这都会有效。
根据我个人的喜好,我喜欢为项目的根目录设置一个常量并从中拉出所有项目相关数据,例如
if (!defined("APP_ROOT")) define("APP_ROOT", $_SERVER["DOCUMENT_ROOT"]);
您可能希望将此选项作为选项进行评估,而不是 DIR 。
我发现它更自然......
如果我需要包含文件,我会导航到查看http://www.mysite.com/library/database.php,然后我只是include(APP_ROOT."/library/database.php");
;
另一个可能适合你的好东西是包含一个
SetEnv APP_CONFIG_FILE "/path/to/config/file.php"
你的.htaccess文件中的指令然后在你的所有脚本中
include($_SERVER["APP_CONFIG_FILE"]);
答案 1 :(得分:0)
根据你的问题,我理解“header.php”与“globals.php”位于同一目录中,因此你可以为“header.php”执行类似的操作
<?php
//header.php
include 'globals.php'
?>
这应该做的工作,如果它仍然无效,请评论它。
感谢。