【问题标题】:require_once(...) can't find file but it's definitely thererequire_once(...) 找不到文件,但它肯定存在
【发布时间】:2015-12-19 15:33:38
【问题描述】:

我正在尝试使用相对路径在 PHP 脚本中包含一个文件。但是,该函数返回一个错误,指出该文件不存在。

确实存在 - 我也附上了文件结构截图 - 其他页面可以毫无问题地包含它。

代码

require_once("../config.php");

输出

警告:require_once(../config.php):无法打开流:第 25 行的 /www/sites/c84/7de/example.com/web/inc/sections.php 中没有这样的文件或目录

致命错误:require_once():在 /www/sites/c84/ 中打开所需的 '../config.php' (include_path='.:/usr/share/php:/usr/share/pear') 失败7de/example.com/web/inc/sections.php 第 25 行

文件结构截图

【问题讨论】:

    标签: php


    【解决方案1】:
    /www/sites/c84/7de/example.com/web/inc../config.php
    

    inc 之后和.. 之前需要一个/

    /www/sites/c84/7de/example.com/web/inc/../config.php
    

    有点像

    require_once(__DIR__ . '/../config.php');
    

    【讨论】:

    • 谢谢 - 使用 __DIR__ . '/ 解决了这个问题。知道为什么只用/../../ 找不到文件吗?
    • /../ 将是一条绝对路径,从根目录上升一级(技术上不可能)。
    • "config.php""/config.php" 可能也会起作用。
    • 但是../ 呢? config.php/config.php 都不起作用。
    • 前导 / 指的是 filesystem 根目录,而不是 web 根目录
    猜你喜欢
    • 2016-08-31
    • 2015-02-27
    • 2013-08-27
    • 1970-01-01
    • 2023-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多