【问题标题】:Rest api: having trouble with root path directoryRest api:根路径目录有问题
【发布时间】:2020-11-16 06:55:25
【问题描述】:

我很确定我写错了目录。

这是我在 Postman 上遇到的错误:


警告:require_once(./includes/functions.php):失败 打开流:没有这样的文件或目录 /var/www/html/includes/database.php3

致命错误:require_once():失败需要打开 './includes/functions.php' (include_path='.:/usr/local/lib/php') 在 /var/www/html/includes/database.php3

我的文件结构:

PHP
_api/
__index.php
_includes/
__database.php
__functions.php

我的 index.php 文件:

 <?php   

    header("Access-Control-Allow-Origin: *");
    header("Content-Type: application/json; charset=UTF-8");

    require_once('../includes/database.php'); 
    $db = new operations();
    $result=$db->view_record();
?>   

database.php文件中的require_once:

<?php 
    session_start();
    require_once('./includes/functions.php');
?>

在functions.php中:

<?php require_once('./includes/database.php');?>

如果有人可以帮助我找到我的代码中缺少的内容,我将不胜感激! :)

【问题讨论】:

  • 使用相对路径会很有趣。在路径名中一个点。表示来自同一个文件夹。双点表示“上一级”。所以你的 database.php 试图找到 /includes/includes/functions.php.

标签: php html file postman directory-structure


【解决方案1】:

您使用的是相对路径,因为 database.phpfunctions.php 位于 includes 文件夹中,您只需删除路径中的 includes 部分即可。

即:

database.php
<?php 
    session_start();
    require_once('functions.php');
?>
functions.php
<?php require_once('database.php');?>

另一种方法是在包含/需要时使用绝对路径(我更喜欢这种方式)

即:

database.php
<?php 
    session_start();
    require_once(__DIR__ . '/../includes/functions.php');
?>

【讨论】:

  • 非常感谢!有时发送到正确的路径可能会很棘手!
猜你喜欢
  • 1970-01-01
  • 2011-02-01
  • 2011-04-13
  • 1970-01-01
  • 2016-01-12
  • 1970-01-01
  • 2013-02-01
  • 2011-11-08
  • 2020-03-13
相关资源
最近更新 更多