以下是包含include语句的文件的路径:
http://localhost/plugins/index.php
这是我所包含文件的路径:
http://localhost/header.php
因此,当我致电include('/header.php')
时,我收到无法打开的流警告消息。但是当我使用include('../header.php')
时,一切正常。但是,我的文件包含深度目录,我不想一次指定一个目录的相对路径。我确信除了使用'/'
之外,必须有一种缩短include参数的方法;如果有,那可能是什么?
答案 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";