Ian*_*Ian 30
我也有这个问题.保罗迪克森的答案是正确的,但也许这将有助于你理解为什么:
这里的问题是PHP是一种服务器端语言.纯HTML文档可以根据您在服务器上设置的根URL访问文件(即,从您使用的任何子目录访问图像,您将使用/images/example.jpg
从顶层目录向下),PHP实际访问使用时的服务器根目录include (/images/example.jpg)
您设置的站点结构实际上位于Apache Server中的文件系统中.我的站点root看起来像这样,从服务器根开始向下:
/home2/siteuserftp/public_html/test/
Run Code Online (Sandbox Code Playgroud)
"test"代表您的站点根目录
所以回答你的问题为什么你的PHP包含没有得到你想要的结果(它完全正常工作)是因为你要求PHP代码尝试在服务器根目录找到你的文件,当它实际上是位于您网站的HTML根目录,如上所示.
您的文件将基于"test /"的站点根目录,并且看起来像这样:
/home2/siteuserftp/public_html/test/about/index.php
Paul Dixon提供的答案是:
include($_SERVER['DOCUMENT_ROOT'].'/example/example.php')
Run Code Online (Sandbox Code Playgroud)
正是解决问题的方法(不要担心尝试找到文档根来替换'DOCUMENT_ROOT',PHP会为你做.确保你有'DOCUMENT_ROOT'字样)
编辑:
更多信息可以在此处找到 DOCUMENT_ROOT和其他PHP SERVER变量
include()(以及许多其他函数,如require(),fopen()等)都可以在本地文件系统上工作,而不是在web根目录下工作.
所以,当你做这样的事情
include( "/example/example.php" );
Run Code Online (Sandbox Code Playgroud)
您试图从*nix机器的根目录中包含.
虽然有很多方法可以接近你正在做的事情,但保罗迪克森的建议可能是你最好的选择.
小智 5
每个 Web 服务器都有一个public_html
文件夹,您通常会在其中保存文件等。通过使用/
,您将无法访问public_html
,而是直接指向主(无法访问的)根目录。所以,$_SERVER['DOCUMENT_ROOT']."/your/locati.on"
改用
归档时间: |
|
查看次数: |
59875 次 |
最近记录: |