html和php的绝对路径有什么区别?

时间:2012-06-07 12:00:24

标签: php html path wamp absolute

我正在开发一个关于php的网站,我已经在我的个人计算机上安装了wamp,我的网站文件位于wamp的www文件夹中。 现在考虑www作为我的根文件夹我在根文件夹中有一个模板文件夹,在模板文件夹中有一个header.inc.html文件。当我尝试使用绝对路径include('/template/header.inc.html');在任何其他php文件中包含此header.inc.html文件时,它给出了错误“无法打开流:没有这样的文件或目录”,但是当我创建一个简单的html完美地使用相同的绝对路径链接并打开文件。下面是我的测试代码

<?php
echo '<a href="/template/header.inc.html">headerfile</a>';
include('/template/header.inc.html');
?>

如果我将例如C:/wamp/www/template/header.inc.html的完整路径提供给include函数,它可以正常工作。

我很困惑这个问题仅在我的wamp服务器上发生,它可以在任何webhost服务器上完美运行,或者在webhost上可能存在同样的问题

我将非常感谢能够澄清我的困惑的任何帮助,谢谢。

3 个答案:

答案 0 :(得分:3)

服务器上的绝对路径从服务器的硬盘(C:\)开始 客户端上的绝对路径从网站的根目录(http://example.com/)开始。

答案 1 :(得分:1)

您可以利用__DIR__在磁盘上创建一些相对于磁盘本身的php文件的文件:

include(__DIR__.'/template/header.inc.html');

这可以解决您的问题。

差异并不容易解释,因为两种类型的路径 - 甚至相关 - 都是两双鞋。我建议您从一个非常基本的HTML网站教程开始,该教程解释了如何在您的网站上链接以及文件所在的位置以及它与网络服务器配置的关系。

答案 2 :(得分:0)

HTML页面存在于客户端的浏览器中,它对您的服务器的文件夹结构一无所知,并且它们与域名相关,例如。 http://example.com/

PHP程序在服务器端运行,它们处理服务器文件夹。你不应该在php程序中对完整路径进行硬编码,因为只要你在开发服务器和实时主机之间移动它们就会引起问题(仅举个例子)。因此,在php文件中,您应该使用文件的相对路径,或者使用{php}文件所在目录替换的__DIR__魔术常量。

1。)第一种方法:include('template/header.inc.html');

2.)第二种方法:include(__DIR__ .'/template/header.inc.html');

在你的情况下(在开发机器上工作),客户端和服务器都是同一个盒子,这可能让你感到困惑。