为什么../(点点斜杠)不能在我的根目录中工作?

时间:2012-12-17 19:58:30

标签: php

  

可能重复:
  Relative include files

例如,

    include('../admin/db_cred.php');

如果我在另一个文件夹中,例如public,那就有效。但是,如果我只是在www.SITE.com/index.php,它就不起作用。

警告:include(../ admin / db_cred.php)[function.include]:无法打开流:第6行/home/[...].php中没有此类文件或目录

我添加了(点点斜线),因为搜索../不能很好地工作......

3 个答案:

答案 0 :(得分:2)

../约定表示从您所在的位置向上移动一个目录级别。如果您位于根目录中,则无法再向上移动。

如果您的/ admin文件夹位于根目录中,并且您从/ public目录中调用它,则../admin/将允许您从下面的某个级别选择/ admin文件夹

答案 1 :(得分:2)

../表示“此文件夹上方的文件夹”或“向上移动文件夹”。例如,如果您在终端并输入cd ../,则会从您开始的位置向上移动文件夹。

当你处于site.com/index时,你很可能在你网站的网络根目录中,因此无法升级,因为没有升级。

“但是/var/www以上有文件夹!”是的,有,但你的脚本没有访问权限(这是一件非常好的事情,你不希望被劫持的脚本获得对整个服务器的访问权限)。就您的脚本而言,/var/www(或任何您的Web根目录) 是最高级别,无论文件系统上实际存在什么。

答案 2 :(得分:0)

../是父文件夹,但root没有父文件。

如果你想解决

http://site/admin/db_cred.php 

你应该这样写:

include('~/admin/db_cred.php');