【问题标题】:Error while trying to require_once a file尝试 require_once 文件时出错
【发布时间】:2018-05-31 14:31:30
【问题描述】:

我在运行脚本时收到此错误:

Warning: require_once(..\ksUtils.php): failed to open stream: No such file or directory in D:\Prog\xampp\htdocs\projs\MccoS\backEnd\db\dbFunctions.php on line 5

Fatal error: require_once(): Failed opening required '..\ksUtils.php' (include_path='.;C:\php\pear') in D:\Prog\xampp\htdocs\projs\MccoS\backEnd\db\dbFunctions.php on line 5

我需要的文件在“D:\Prog\xampp\htdocs\projs\MccoS\backEnd\db\”中

我当前脚本的第一行:

<?php
if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

require_once '..\backEnd\db\dbFunctions.php';

问题是我需要的文件(dbFunctions.php)也有一个必需的文件(ksUtils.php),这是错误的原因。

在 dbFunctions.php 我有这个:require_once '..\ksUtils.php';

注意:我尝试输入 http://localhost/projs/MccoS/backEnd/db/dbFunctions.php 并没有抛出错误。

这是我的层次结构:

D:\Prog\xampp\htdocs\projs\

    MccoS
    -backEnd
    --db
    ---dbFunctions.php
    --ksUtils.php
    -frontEnd
    --register.php

我该如何解决这个问题?

注意:我使用的是 Windows。

【问题讨论】:

  • 您应该有一个 BASE_PATH 常量(或类似名称)来保存项目目录的绝对路径,并停止在所有地方使用相对路径,因为这 - 如您所见 - 变成凌乱。然后你可以使用 require_once BASE_PATH 。 'backEnd/ksUtils.php' 你的问题消失了
  • @Xatenev 感谢您的建议,我选择它并解决了我的问题
  • 很高兴它对你有用。

标签: php backend require


【解决方案1】:

试试这个

<?php
if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

include __DIR__ . "../backEnd/db/dbFunctions.php";

【讨论】:

    【解决方案2】:

    由于声誉较低,我无法添加评论,正如错误所说,找不到文件,所以问题在于定义文件路径:

    <?php
    if (session_status() == PHP_SESSION_NONE) {
        session_start();
    }
    
    require_once="../backEnd/db/dbFunctions.php";
    

    【讨论】:

    • 我不确定require_once="...."; 是什么类型的构造。以及您的答案没有回答 OP 的问题,dbFunctions.php 的要求正常工作。重新阅读问题。
    猜你喜欢
    • 2016-06-14
    • 2013-06-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2021-09-26
    • 2017-12-27
    • 2017-12-26
    相关资源
    最近更新 更多