首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP如何找到应用程序根目录?

问PHP如何找到应用程序根目录?
EN

Stack Overflow用户
提问于 2010-10-17 08:49:21
回答 7查看 75.7K关注 0票数 29

我的包含文件有问题。当我使用require_once('somefile.php')时,我似乎无法理解如何构造我的URL。如果我试图在目录结构不同的多个地方使用包含文件,则会得到一个无法找到包含文件的错误。

在asp.net中,要获得我的应用程序根路径,我可以使用~/目录/file.aspx。tild正斜杠总是知道我是从我的网站根引用,并找到文件,无论请求来自我的网站内。它总是引用根并从那里查找文件。

问题:如何获得我的站点的根路径?我如何做到这一点,以便我可以重用我的包括文件从任何地方在我的网站?我必须在我的URL中使用绝对路径吗?

谢谢!

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-10-17 08:51:26

有一些$_SERVER['DOCUMENT_ROOT']应该有指向web服务器的根路径。

编辑:如果您查看大多数主要的php程序。使用安装程序时,通常输入到应用程序文件夹的完整路径。安装程序将将其放入整个应用程序中包含的配置文件中。一种选择是使用自动预置文件来设置变量。另一种选择是只在您需要的每个页面上一次()配置文件。我建议的最后一个选项是使用自举编写应用程序,这是通过一个文件(通常使用url_rewrite)将所有请求导入的地方。这使您可以轻松地在一个位置设置/包含配置变量,并使它们在所有脚本中都可用。

票数 25
EN

Stack Overflow用户

发布于 2010-10-18 16:41:34

我通常将config.php文件存储在根目录中,在config.php中我写到:

define('ROOT_DIR', __DIR__);

然后只需在所有其他脚本中使用ROOT_DIR常量。使用$_SERVER['DOCUMENT_ROOT']不是很好,因为:

  • 它并不总是匹配ROOT_DIR
  • 此变量在CGI模式(e.x )中不可用。如果您通过CRON运行您的脚本)
票数 12
EN

Stack Overflow用户

发布于 2017-08-14 09:31:05

能够在每个脚本的顶部使用相同的代码,并且知道您的页面将正确加载,这是很好的,即使您位于子目录中。我使用它,它依赖于您知道根目录的名称(通常是“htdocs”或“public_html”):

代码语言:javascript
复制
defined('SITEROOT') or define('SITEROOT', substr($_SERVER['DOCUMENT_ROOT'], 0, strrpos($_SERVER['DOCUMENT_ROOT'], 'public_html')) . 'public_html');

使用一贯定义的SITEROOT,您可以访问一个配置文件和/或页面组件,而无需在脚本的基础上调整路径,例如存储在根文件夹之外的配置文件:

代码语言:javascript
复制
require_once SITEROOT . "/../config.php";
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3952590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档