如何在PHP中正确拆分PATH变量?

11

我想要分割字符串

$path = getenv('PATH');

如何以与操作系统相关的方式确定分隔符字符,将字符串拆分为其组件?

4个回答

21
你可以使用PATH_SEPARATOR常量,然后使用DIRECTORY_SEPARATOR常量拆分路径(如果需要)。 请参阅Directory Predefined Constants

5
你不能使用 DIRECTORY_SEPARATOR 来完成这个任务,必须使用 PATH_SEPARATOR。第一个字符用于在文件夹之间分隔,而路径分隔符则用于分隔不同的路径,例如环境变量 PATH 中定义的路径。 - RaYell
@Greg,您能否至少清理一下错误或删除答案,以便其他人得到应有的关注?您的回答获得了18个赞,但是是错误的。 - Pacerier

4
使用PATH_SEPARATOR常量。

3

我知道这对于include_path是有效的,但不确定对于getenv('PATH')是否有效:

$paths = split(PATH_SEPARATOR, getenv('PATH'));

include_path是一个有效的PATH格式字符串,适用于任何系统:适用于一个系统的相同拆分技术也适用于另一个系统。 - Matthew Scharley
1
请注意,此帖子是在2009年编写的。根据PHP手册,“split()”已被弃用。 - mauris

0

我记得Windows可以接受正斜杠和反斜杠作为文件分隔符,所以你可能不必担心这个问题。


1
我认为他指的是 PATH 环境变量中条目的分隔符(例如在 *nix 上的“:”),而不是路径内部的分隔符。 - c089

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接