gpt4 book ai didi

PHP包含相对路径

转载 作者:IT老高 更新时间:2023-10-28 12:04:34 24 4
gpt4 key购买 nike

我有文件/root/update/test.php。还有一个文件,/root/connect.php;这个文件有一行

include "../config.php";

在/root/update/test.php 中。有代码

set_include_path(".:/root");
include "connect.php";

当我运行/root/update/test.php时,它找到connect.php,但找不到config.php,给我

PHP Warning:  include(../config.php): failed to open stream: No such file or directory in /root/connect.php on line 2
PHP Warning: include(): Failed opening '../config.php' for inclusion (include_path='.:/root')

这让我很困惑,因为这些警告让我觉得我做的一切都是正确的——包含路径是/root,它正在寻找存在的文件 ../config.php (/config.php)。有人可以帮我解决这个问题吗?请注意,由于部署到我无权访问的生产服务器,因此我不能选择使用绝对路径。

Ubuntu/Apache

最佳答案

你总是可以使用 __DIR__ 来包含它:

include(dirname(__DIR__).'/config.php');

__DIR__ 是一个'magical constant ' 并返回当前文件的目录,不带斜杠。它实际上是一个绝对路径,你只需要将文件名连接到__DIR__。在这种情况下,由于我们需要提升目录,我们使用 PHP 的 dirname 来提升文件树,从这里我们可以访问 config.php

你也可以在这个方法中设置根路径:

define('ROOT_PATH', dirname(__DIR__) . '/');

在 test.php 中会将您的根设置为 /root/ 级别。

include(ROOT_PATH.'config.php');

然后应该努力从您想要的位置包含配置文件。

关于PHP包含相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17407664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com