【问题标题】:PHP Require paths / Relative or absolutePHP 需要路径/相对或绝对
【发布时间】: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


【解决方案1】:

db_functions.php 必须包含 config.php 使用 需要一次'config.php';因为它们在同一个文件夹中。

一般来说,最好使用完整路径。

【讨论】:

    猜你喜欢
    • 2012-12-03
    • 2012-04-21
    • 2013-04-17
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多