directory_separator vs path_separator何时以及如何使用

时间:2014-11-13 17:07:10

标签: php

我想知道何时会在代码中使用php的PATH_SEPERATOR。我知道它打印出一个冒号。

为什么有两个常量DIRECTORY_SEPERATORPATH_SEPERATOR,它们的名称是同义词?

我知道PATH_SEPERATOR打印出斜杠。

当我想到路径分隔符或目录分隔符时,我想到的是/

使用DIRECTORY_SEPARATOR的示例:

include 'files' . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'image.jpg';

PHP的documentation并没有多说。

4 个答案:

答案 0 :(得分:1)

虽然人们可能认为他们有同义词,但他们的工作实际上却完全不同。

在构建文件夹或文件的路径时使用DIRECTORY_SEPARATOR

在为路径集合构建字符串时使用PATH_SEPARATORPATH_SEPARATOR用于分隔该集合中的各个路径。

示例:

$location1 = "include_folder".DIRECTORY_SEPARATOR."subfolder1";
$location2 = "include_folder".DIRECTORY_SEPARATOR."subfolder2";
$path_collection = $location1.PATH_SEPARATOR.$location2;

答案 1 :(得分:0)

DIRECTORY_SEPARATOR用于分隔单个路径的元素。 PATH_SEPARATOR用于将多个路径分隔为单个值,例如在include_path

答案 2 :(得分:0)

DIRECTORY_SEPERATOR分隔目录(/或\),例如

/home/your_user_name

PATH_SEPERATOR分隔路径(:或;),例如

/home/your_user_name:/var/www/web0

请注意,只要您坚持DIRECTORY_SEPERATOR,就不必使用/。 Windows和Linux都理解这一点。

答案 3 :(得分:0)

这不仅仅是php。通常,目录分隔符和路径分隔符是两个不同的东西。

目录分隔符包含一个目录。例如,在unix上,a/b/c有一个目录分隔符或'/'。在Windows上,它(可能是:-)为a\b\c,分隔符为'\\'(转义的额外反斜杠: - )。

路径分隔符描述多个目录...例如,请考虑以下搜索路径:

/bin:/usr/bin:/home/me/bin

在包含3个目录的搜索路径中。 3个目录中的每一个都使用'/'作为其DIRECTORY_SEPARATOR,但整个搜索路径使用PATH_SEPARATOR':'来分隔组成目录。

这意味着,首先查看/ bin,然后如果没有,请查看/ usr / bin,如果没有,请查看/ home / me / bin。

希望这有帮助。