Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php包含/需要路径规范格式_Php - Fatal编程技术网

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应用程序中的页面相互引用