php中的“/”需要/ include是什么意思?

时间:2014-10-02 07:40:49

标签: php

当我使用require("/toinclude.php")时,“/”是什么意思?

  • 它是我的ubuntu的根目录吗?

  • 还是我的www目录apacheset?

  • 还是当前文件的路径?这似乎是真的......

更重要的是,我真的对PHP中使用路径感到困惑。是require() / include()中的“/”表示当前目录,system(...) / exec(...)中的“/”是 Linux的根目录,html代码<form action="/processpost.php">中的“/”是Apache为我设置的“www”目录?

2 个答案:

答案 0 :(得分:2)

在PHP(服务器端)中,以/开头的任何路径(至少在基于Unix的系统上)都是文件系统根。在大多数(如果不是全部)情况下,这是你想要的。

在HTML(客户端)中,&#39; /&#39;是URL根目录。即:它直接放在域名之后。例如。从/process.php获取的HTML文件中的http://example.com将重定向到http://example.com/process.php。此可能是www-root,但也可能是其他内容,具体取决于服务器中的设置。

includerequire使用包含路径来获取文件。如果您没有提供完整路径(即,您在开头省略了/),PHP将从当前目录开始扫描它在其包含路径中找到的所有目录。通常,PEAR模块的路径在该路径中,因此代码如下:

include("SomePearModule/Module.class.php");

有效,即使它不在您的网站树上。

documentation可以找到更多内容。

答案 1 :(得分:1)

它是文字服务器端(文件系统)路径。好吧,不是总是字面意思。

这取决于您的服务器设置。如果PHP在一个被监禁的chroot中运行,那么/就PHP来说它实际上可能是/var/web/chroots/domain.com/或类似的东西。

大多数情况下,您需要某种配置文件,根据脚本实际执行的相对路径确定库和内容的位置,然后将该信息传递给require()require_once()分别。

类似的东西:

<?php

$base = dirname(__FILE__);
$Libraries = $base . '/libraries';

require_once($Libraries . '/Library.php');
?> 

如果您使用任何类型的现代框架,通常会通过它为加载内容提供的任何方式为您处理。确保拨打require()require_once()的所有电话都不必根据您安装应用的位置进行更改,这一切都很好,这一切都与...相关它被执行了。