我开发PHP的网站,我已经安装WAMP我的个人电脑和我的网站上的文件都在WAMP的WWW文件夹。 现在正在考虑WWW作为我的根文件夹我在模板文件夹的根文件夹模板文件夹和文件header.inc.html。 当我尝试使用绝对路径,包括在任何其他PHP文件这个文件header.inc.html include('/template/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
到包括功能正常工作。
我很困惑,这个问题只出现我WAMP的服务器上,将主机商服务器上的完美,也许同样的问题会存在一个虚拟主机提供商
我希望这将澄清我的困惑任何帮助,谢谢。
从服务器的硬盘上的服务器启动的绝对路径( C:\
)。
在客户端上的绝对路径从网站(根开始http://example.com/
)。
您可以利用__DIR__
作出关于相对于上盘本身的PHP文件磁盘某些文件:
include(__DIR__.'/template/header.inc.html');
这应该解决您的问题。
所不同的是不那么容易解释,因为这两种类型的路径 - 甚至关系 - 两个双鞋。 我建议你用一个非常基本的HTML网页教程,说明如何在您的网站链接和文件所在的位置,以及如何关系到网络服务器配置启动。
HTML页面居住在客户端的浏览器一无所知你的服务器的文件夹结构,而且他们相对于域名如。 http://example.com/ 。
PHP程序在服务器端运行,他们处理的服务器文件夹。 你不应该硬编码完整路径在你的PHP程序,因为它会导致每当你开发服务器和实况主持人之间移动他们的问题(仅举一个例子)。 因此,在PHP文件您应该使用相对路径到您的文件,或者使用__DIR__
的是它和在php文件所在的目录取代魔法不变。
1。)第一种方法: include('template/header.inc.html');
2.)第二种方法: include(__DIR__ .'/template/header.inc.html');
在你的情况(在开发机器上工作),同时在客户端和服务器是一样的盒子,这可能会混淆你。