Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
文档根PHP_Php_Html_Root - Fatal编程技术网

文档根PHP

文档根PHP,php,html,root,Php,Html,Root,仅为确认,正在使用: $_SERVER["DOCUMENT_ROOT"] 与使用相同:/ 在HTML中 例如,如果当前文件为: folder/folder/folder/index.php 我可以使用(HTML)从roort开始: /somedoc.html 要在PHP中实现同样的功能,我必须使用: $_SERVER["DOCUMENT_ROOT"] . "/somedoc.html"; 对吗?有更简单的方法吗? <a href="<?php echo $_SERV

仅为确认,正在使用:

$_SERVER["DOCUMENT_ROOT"]
与使用相同:/

在HTML中

例如,如果当前文件为:

folder/folder/folder/index.php
我可以使用(HTML)从roort开始:

/somedoc.html
要在PHP中实现同样的功能,我必须使用:

$_SERVER["DOCUMENT_ROOT"] . "/somedoc.html";
对吗?有更简单的方法吗?


<a href="<?php echo $_SERVER['DOCUMENT_ROOT'].'/hello.html'; ?>">go with php</a>
    <br />
<a href="/hello.html">go to with html</a>

你自己试试看,发现它们并不完全相同

$\u SERVER['DOCUMENT\u ROOT']
呈现实际的文件路径(在作为自己的服务器运行的计算机上,
C:/wamp/www/

HTML的
/
呈现服务器url的根,在我的例子中是
localhost/


但是
C:/wamp/www/hello.html
localhost/hello.html
实际上是同一个文件

只是
/
指的是公共html文件夹中网站的根。
DOCUMENT\u root
指的是服务器上包含网站的文件夹的本地路径

例如,我在一台机器上安装了EasyHP

$\u服务器[“DOCUMENT\u ROOT”]
为我提供了
file:///C:/Program%20Files%20(x86)/EasyPHP-5.3.9/www
但是我用
/
链接到的任何文件都将与我的
www
文件夹相关


如果您想提供服务器上文件的绝对路径(从服务器的根目录),可以使用
DOCUMENT\u root
。如果您想从网站的根目录提供文件的绝对路径,只需使用
/

最简单的方法就是拥有良好的网站结构并将其作为常量写入

DEFINE("BACK_ROOT","/var/www/");

,在服务器端
$\u服务器['DOCUMENT\u ROOT']
相当于客户端的
/

例如:
“{$\u SERVER['DOCUMENT\u ROOT']}/images/thumbnail.png”
的值将是服务器上的字符串
/var/www/html/images/thumbnail.png
,可以从客户端的url
http://example.com/images/thumbnail.png

,换句话说,
$\u SERVER['DOCUMENT\u ROOT']
的值不是
/
,而是服务器在
example.com/
上向客户端显示的服务器本地路径


注意:
$\u服务器['DOCUMENT\u ROOT']
不包含尾随的
/

,如果要将其用于include(),这与上面的超链接不同。没有理由发布我的答案,因为这是我要说的。includes有什么不同?你需要一个
/
介于
文档根目录
hello.html
文件路径和url不是同一个东西我知道它的旧版本,但我偶然发现了这个,你为什么要做更多常量如果您已经有一个php定义的服务器常量来执行此操作,则会浪费代码、cpu和内存,无论其深度有多深(文件夹方面)你在includes中,这样你就不必编写与脚本相关的代码,而只需编写用于定义根的代码。我用它来对抗当今许多程序员使用的Jerry-rigging方法。是的,但这样你的脚本就依赖于系统或位置,而这永远不应该是,应用程序应该是可移植的