假设我有一个这样的文件夹结构:
C:\xampp\htdocs\MyProject
|-- Lib
| |-- dbconn.php
|-- SuperSite
| |-- index.php
| |-- misc
| |-- misc.php
index.php有这样一行:
require("../Lib/dbconn.php");
如果从Web服务器访问index.php,这将起作用,但如果从命令行运行index.php,require()将失败:
C:\>php C:\xampp\htdocs\MyProject\SuperSite\index.php
Warning: include(../Lib/dbconn.php): failed to open stream: No such file or directory in C:\xampp\htdocs\MyProject\SuperSite\index.php
但是,如果我在路径前添加“/”,它不会失败:
require("/../Lib/dbconn.php");
如果我需要这样的其他文件,它也不会失败:
require("misc/misc.php");
或
require("/misc/misc.php");
为什么从命令行运行脚本时需要在以“..”开头的路径前面加上“/”?
(如果从网络服务器访问(使用浏览器),前面有或没有“/”的路径)