根路径不适用于 php 包含

2022-08-30 10:51:41

/ 在链接的开头,以访问根文件夹在php中不起作用。

例如“/example/example.php”

解决方案是什么?


答案 1

我假设根文件夹是指您的Web文档根目录,而不是文件系统根目录。

为此,您可以

  • 将 Web 根文件夹添加到包含路径,以及include('example/example.php')
  • 或者您可以include($_SERVER['DOCUMENT_ROOT'].'/example/example.php')

答案 2

我也有这个问题。Paul Dixon的答案是正确的,但也许这将有助于你理解为什么:

这里的问题是PHP是一种服务器端语言。纯HTML文档可以根据您在服务器上设置的根URL访问文件(即,从您所在的任何子目录访问图像,您将使用从顶部目录向下访问),PHP实际上在您使用时访问服务器根目录/images/example.jpginclude (/images/example.jpg)

您设置的站点结构实际上位于 Apache 服务器的文件系统中。我的站点根目录看起来像这样,从服务器根目录开始,然后向下发展:

/home2/siteuserftp/public_html/test/

“测试”表示您的网站根目录

因此,要回答您的问题,为什么您的PHP包含没有得到您想要的结果(它完全按照应有的方式工作),是因为您要求PHP代码尝试在服务器根目录下找到您的文件,而它实际上位于您网站的HTML根目录中,看起来就像上面一样。

您的文件将基于“test/”的站点根目录,如下所示:

/home2/siteuserftp/public_html/test/about/index.php

保罗·迪克森给出的答案是:

include($_SERVER['DOCUMENT_ROOT'].'/example/example.php')

正是什么将解决你的问题(不要担心试图找到文档根来替换“DOCUMENT_ROOT”,PHP会为你做。只要确保你有“DOCUMENT_ROOT”字面上)

编辑:

DOCUMENT_ROOT和其他 PHP SERVER 变量的更多信息可以在这里找到


推荐