这有效
<?php include("inc/c.php")?>
但是在过去的文件夹中,这不起作用
<?php include("../inc/c.php")?>
我必须做
<?php include("/var/web/public_html/etc/inc/c.php")?>
我知道在ASP中你可以启用虚拟路径和目录。这和PHP一样吗?
答案 0 :(得分:2)
如果您要包含文件夹中的文件,则所有包含都与包含者的文件相关。
因此,相同的代码应该适用于子文件夹中的文件:
<?php include("inc/c.php")?>
答案 1 :(得分:1)
您可以使用realpath(dirname(__FILE__))
相对于当前文件包含文件:
include(realpath(dirname(__FILE__).'/../inc/c.php'));
答案 2 :(得分:0)
您可以将目录添加到PHP的include_path
目录中。指定相对文件名时,PHP将查找相对于include_path
中指定的所有目录的文件。
看看http://php.net/manual/en/function.set-include-path.php#example-488。
答案 3 :(得分:0)
使用
dirname(__file__)
它将返回当前目录的路径。
答案 4 :(得分:-2)
但是在过去的文件夹中,这不起作用
不, 工作。
我知道在ASP中你可以启用虚拟路径和目录。这和PHP一样吗?
是。但是整个虚拟路径的事情与你的情况无关。
这不是PHP问题。这是开发人员使用错误路径的问题。
要使代码万无一失,请始终使用绝对路径。不是从当前位置而是从站点根目录构建路径。因此,您网站上的任何页面都会如此 最通用的方式是
include $_SERVER['DOCUMENT_ROOT']."/etc/inc/c.php";