【发布时间】:2018-03-26 23:22:14
【问题描述】:
PHP 新手,因此试图弄清楚相对路径和绝对路径如何与 require 一起工作。
我的结构如下:
/index.php
/inc/db_functions.php
/inc/config.php
/login/login.php
db_functions.php 包括 config.php 使用
require_once 'inc/config.php';
index.php 包含使用require_once 'inc/db_functions.php'; 的db_functions.php
如果用户未登录,则浏览器将重定向到 login.php。 最初 login.php 位于根文件夹中,并且使用了一次与 index.php 相同的 require。效果很好。
现在它位于自己的子文件夹中。
我将 require_once 更改为使用
require_once('../inc/db_connect.php');
代码一直运行到 db_connect.php 中的 require_once 行,然后失败。
我将 login.php 中的一次要求更改为:
require_once(__DIR__.'/../inc/db_connect.php');
当它到达 db_connect.php 中的 require_once 时再次失败
我将 db_connect 中的 require_once 更改为绝对路径。又失败了。
有什么办法可以解决这个问题,因为似乎包含文件的包含路径会被调用文件的位置改变(我猜这是有道理的),但是如何使它更健壮。
【问题讨论】:
-
请编辑您的问题,使其包含文件的源代码并写下您收到的错误消息。但是,魔术常量
__DIR__应该可以解决问题。 -
嗨。我会尝试上传代码,但它有好几行,所以我会先修剪它。我也没有收到错误消息。 netbeans 下的调试只是停在那一行,并没有继续。
-
您可能需要查看stackoverflow.com/questions/845021/… 以了解如何从您的 php 脚本中获取错误消息。
标签: php require relative-path