只是确认,正在使用:
$_SERVER["DOCUMENT_ROOT"]
与使用相同:/
HTML中的。
EG。如果当前文件是:
folder/folder/folder/index.php
我可以使用(在HTML中)从roort开始:
/somedoc.html
并在PHP中做同样的事情我将不得不使用:
$_SERVER["DOCUMENT_ROOT"] . "/somedoc.html";
这是对的吗?有没有更简单的方法呢?
答案 0 :(得分:29)
<a href="<?php echo $_SERVER['DOCUMENT_ROOT'].'/hello.html'; ?>">go with php</a>
<br />
<a href="/hello.html">go to with html</a>
自己尝试一下,发现它们并不完全相同。
$ _ SERVER ['DOCUMENT_ROOT']呈现实际的文件路径(在我的计算机上运行,因为它自己的服务器,c:/ wamp / www /
HTML's /呈现服务器URL的根,在我的例子中是localhost /
但是c:/wamp/www/hello.html和localhost / hello.html实际上是同一个文件
答案 1 :(得分:5)
只是/
从公共html文件夹中引用您网站的根目录。 DOCUMENT_ROOT
指的是包含您网站的服务器上文件夹的本地路径。
例如,我在机器上安装了EasyPHP ......
$_SERVER["DOCUMENT_ROOT"]
给了我file:///C:/Program%20Files%20(x86)/EasyPHP-5.3.9/www
,但我链接到/
的任何文件都与我的www
文件夹相关。
如果要提供服务器上文件的绝对路径(来自服务器的根目录),可以使用DOCUMENT_ROOT
。如果您想从网站的根目录中提供文件的绝对路径,请仅使用/
。
答案 2 :(得分:0)
是,在服务器端$_SERVER['DOCUMENT_ROOT']
等同于在客户端/
。
例如:"{$_SERVER['DOCUMENT_ROOT']}/images/thumbnail.png"
的值将是服务器上的字符串/var/www/html/images/thumbnail.png
,在该服务器上可以从客户端的URL http://example.com/images/thumbnail.png
到达该路径下的本地文件>
否,换句话说,$_SERVER['DOCUMENT_ROOT']
的值不是/
,而是服务器在example.com/
上向客户端显示的内容的服务器本地路径。
注意:$_SERVER['DOCUMENT_ROOT']
不包含结尾的/
答案 3 :(得分:-6)
最简单的方法是拥有良好的网站结构并将其写为常量。
DEFINE("BACK_ROOT","/var/www/");