Include('/ header.php')返回'无法打开流'错误

时间:2014-09-24 02:46:35

标签: php include

以下是包含include语句的文件的路径:

http://localhost/plugins/index.php

这是我所包含文件的路径:

  

http://localhost/header.php

因此,当我致电include('/header.php')时,我收到无法打开的流警告消息。但是当我使用include('../header.php')时,一切正常。但是,我的文件包含深度目录,我不想一次指定一个目录的相对路径。我确信除了使用'/'之外,必须有一种缩短include参数的方法;如果有,那可能是什么?

3 个答案:

答案 0 :(得分:1)

include('/header.php')在你的根文件夹中查找(字面意思是/在Unix上,通常是c:\在Windows上;这是绝对包含,不是是相对的。

处理嵌套的最佳选择是使用绝对包含使用网络根目录的文件夹名称(我不知道您的平台或设置)。如果你不知道你可以从header.php执行echo dirname(__FILE__)来弄明白;通常/var/www/在Linux或Windows上可能会像C:/Program Files/Apache Software Foundation/Apache2.4/htdocs那样疯狂。

一旦你知道,无论你的文件是如何嵌套的,include('/var/www/header.php')等绝对包含都会有效。

希望有所帮助。

答案 1 :(得分:1)

$_SERVER['DOCUMENT_ROOT'] can be used more ideally like so:

include $_SERVER['DOCUMENT_ROOT'] . '/header.php';

这比使用其他绝对网址更合理,例如include '/usr/local/apache2/htdocs...将您网站的代码绑定到您的网络服务器配置。

答案 2 :(得分:1)

如果您在脚本上使用include(),则会包含该文件.unix上的路径名以/开头 在Windows中,它是一个冒号。

另请参阅返回绝对路径名的函数realpath()

或者您可以使用

include $_SERVER['DOCUMENT_ROOT'] . "/includefolder/thefile.php";