php包含/需要路径规范格式
这很简单,但大多数情况下都很混乱 我需要知道当我们按照以下模式包含文件时意味着什么(我在许多地方看到的情况可能不止这些) 这意味着什么php包含/需要路径规范格式,php,Php,这很简单,但大多数情况下都很混乱 我需要知道当我们按照以下模式包含文件时意味着什么(我在许多地方看到的情况可能不止这些) 这意味着什么 "./path" "/path" "../path" dirname(__FILE__) basename(dirname(dirname(__FILE__))); require dirname(__FILE__) . DIRECTORY_SEPARATOR; pathinfo() define('BASE_PATH',realpath('.'
"./path"
"/path"
"../path"
dirname(__FILE__)
basename(dirname(dirname(__FILE__)));
require dirname(__FILE__) . DIRECTORY_SEPARATOR;
pathinfo()
define('BASE_PATH',realpath('.'));
define('BASE_URL', dirname($_SERVER["SCRIPT_NAME"]));
“/路径”
点表示工作目录。这是在命令行上键入“pwd”时打印的目录。这可能是脚本本身的目录,也可能是首先运行的脚本的目录,但并不总是如此
“/path”
以斜杠开头的路径相对于最顶端的目录。这通常是服务器的根目录,但也可以是装载点、用户目录,或者web根目录,具体取决于服务器的配置方式
“/路径”
“.”指高于工作目录一级的目录。因此,如果工作目录是/foo/bar,“.”是/foo,“./path”是指/foo/path
目录名(文件名)
dirname()“返回父目录的路径。”_FILE是一个神奇的常量,它引用使用它的文件的完整路径。因此,如果您在/foo/bar/baz/file.php上有一个脚本,uuu文件将是“/foo/bar/baz/file.php”,而dirname(uu文件)将是“/foo/bar/baz”
basename(dirname(dirname(_文件__))
basename()“返回路径的尾部名称组件”。同样的规则也适用于dirname(),因此上一个示例中的dirname(_文件__)是“/foo/bar/baz”,而dirname(dirname(_文件__))则是“/foo/bar”。此路径的尾随组件是“bar”,因此对于此_文件_,basename(dirname(dirname(_文件_))将是“bar”
需要目录名(_文件)。目录分隔符
DIRECTORY_SEPARATOR是一个我不知道的常量,但显然它是在文件系统扩展名中定义的。如果文件是“/foo/bar/baz/FILE.php”,那么路径就是“/foo/bar/baz/”。所以这个说法似乎不完整。require()与include()类似,只是如果找不到文件,它会给出一个错误。路径从不引用文件,因此此语句没有多大意义
路径信息()
pathinfo()解析路径。传递给它一个路径,它将给出一个关联数组,其中包含dirname、basename、extension和filename键以及解析路径的各个部分
定义('BASE_PATH',realpath('.')
realpath()将采用相对路径并将其变形为绝对路径。如前所述,“.”指的是工作目录,如果是“/foo/bar/baz”,那么realpath(“.”将返回“/foo/bar/baz”。define()将生成一个常量,因此其效果是将BASE_PATH常量设置为脚本的工作目录。如果工作目录在脚本过程中发生更改,或者如果您将文件包含在子目录中,则这可能非常有用。它们可以使用常量引用web应用程序的顶层
定义('BASE_URL',dirname($_SERVER[“SCRIPT_NAME”])
define()和dirname()的处理方法相同。这里的新功能是$\u SERVER[“SCRIPT\u NAME”]。如果加载脚本的地址为example.com/foo/file.php,则该地址为“/foo/file.php”,其dirname()为“/foo”。设置此常量可能有助于web应用程序中的页面相互引用