我的包含文件有问题。当我使用require_once('somefile.php')时,我似乎无法理解如何构造我的URL。如果我试图在目录结构不同的多个地方使用包含文件,则会得到一个无法找到包含文件的错误。
在asp.net中,要获得我的应用程序根路径,我可以使用~/目录/file.aspx。tild正斜杠总是知道我是从我的网站根引用,并找到文件,无论请求来自我的网站内。它总是引用根并从那里查找文件。
问题:如何获得我的站点的根路径?我如何做到这一点,以便我可以重用我的包括文件从任何地方在我的网站?我必须在我的URL中使用绝对路径吗?
谢谢!
发布于 2010-10-17 08:51:26
发布于 2010-10-18 16:41:34
我通常将config.php文件存储在根目录中,在config.php中我写到:
define('ROOT_DIR', __DIR__);
然后只需在所有其他脚本中使用ROOT_DIR常量。使用$_SERVER['DOCUMENT_ROOT']不是很好,因为:
发布于 2017-08-14 09:31:05
能够在每个脚本的顶部使用相同的代码,并且知道您的页面将正确加载,这是很好的,即使您位于子目录中。我使用它,它依赖于您知道根目录的名称(通常是“htdocs”或“public_html”):
defined('SITEROOT') or define('SITEROOT', substr($_SERVER['DOCUMENT_ROOT'], 0, strrpos($_SERVER['DOCUMENT_ROOT'], 'public_html')) . 'public_html');使用一贯定义的SITEROOT,您可以访问一个配置文件和/或页面组件,而无需在脚本的基础上调整路径,例如存储在根文件夹之外的配置文件:
require_once SITEROOT . "/../config.php";https://stackoverflow.com/questions/3952590
复制相似问题