gpt4 book ai didi

doc root 之外的 PHP 文件需要 document root 外部和内部的文件

转载 作者:行者123 更新时间:2023-12-04 22:27:54 25 4
gpt4 key购买 nike

我有一个类库,所有类都相互关联。

有些文件在文档根目录内,有些在外部使用 <Directory> and Alias httpd.conf 中的特性

假设我有 3 个文件:

webroot.php (Inside the document root)
alias_directory.php (Inside a folder outside the doc root)
alias_directory2.php (Inside a **different** folder outside the doc root)

如果 alias_directory2.php 需要 webroot.php 和 alias_directory.php,这不起作用。(记住 alias_directory.php 和 alias_directory2.php 不在同一个位置)

require_once $_SERVER['DOCUMENT_ROOT'].'/webroot.php'; //(ok)
require_once $_SERVER['DOCUMENT_ROOT'].'/alias_directory.php'; //(not ok)

这不起作用,因为 alias_directory.php 不在文档根目录中。

同理

require_once $_SERVER['DOCUMENT_ROOT'].'/webroot.php'; //(ok)
require_once dirname(__FILE__).'/alias_directory.php'; //(not ok)

这里的问题是 dirname(__FILE__)将返回 alias_directory2.php 的路径而不是 alias_directory.php。

这个有效:

require_once $_SERVER['DOCUMENT_ROOT'].'/webroot.php'; //(ok)
require_once '/full/path/to/directory/alias_directory.php'; //(ok)

但是如果我决定将我的图书馆移动到另一个位置,这非常令人讨厌并且是维护的噩梦。

我该如何解决这个问题,似乎我需要一种正确解析别名文件夹的方法。

最佳答案

PHP 无法解析 alias_directory.php 文件的位置。您需要自己提供 alias_directory.php 文件的位置。作为绝对路径,或相对于 alias_directory2.php 或 DOCUMENT_ROOT

例子:

If your file locations look something like this:
/var/www/webroot.php
/var/otherdir1/alias_directory.php
/var/otherdir2/alias_directory2.php

From alias_directory2.php you can now include alias_directory.php by either:
require_once('/var/otherdir1/alias_directory.php');
or
require_once(dirname(__FILE__).'/../otherdir1/alias_directory.php');
or
require_once($_SERVER['DOCUMENT_ROOT'].'/../otherdir1/alias_directory.php');

要使用相对路径,alias_directory.php 应该位于靠近 alias_directory2.php 或 DOCUMENT_ROOT 的地方

另一个解决方案是将有问题的文件夹添加到 include_path,并使用 require_once('alias_directory.php');没有指定路径。

关于doc root 之外的 PHP 文件需要 document root 外部和内部的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3029650/

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