gpt4 book ai didi

php - 为 *Nix 和 Windows 设置 PHP 包含路径的正确方法

转载 作者:IT王子 更新时间:2023-10-29 00:24:33 25 4
gpt4 key购买 nike

这是为*nix 和 Windows定义包含路径的正确方法吗?

define( 'INCPATH', realpath( dirname( __FILE__ ) ) . '/' );

请注意我在上面包含的尾部正斜杠。对于两个操作系统,includes/requires 的正斜杠是否也相同?

编辑(已更新答案):

据我所知,我的以下代码是为 *nix 和 Windows 操作系统普遍定义包含/要求路径的正确方法。请随时更正以下评论中的任何内容。

让我感到困惑的是我看到的许多示例都显示了将 反斜杠 (\) 替换为 正斜杠 (/)。根据下面的一些答案,这是不必要的。

所以最终正确的代码(对于纯粹主义者)是:

define( 'INCPATH', realpath( dirname( __FILE__ ) ) . DIRECTORY_SEPARATOR );

该代码产生以下结果:

*nix:/path/to/the/file/

Windows: C:\Path To\the\file\

一个简短的解释,从内到外(__FILE__)到(realpath()):

FILE文件的完整路径和文件名。始终包含已解析符号链接(symbolic link)的绝对路径。

dirname()返回的字符串是 path,删除了任何尾随/component。负责删除文件名。

realpath()成功时返回规范化(规范化/标准化)绝对路径名。生成的路径将没有符号链接(symbolic link)、'/./''/../' 组件。我假设这是为了彻底而包括在内,因为 __FILE__ 已经解析了符号链接(symbolic link)。或者它可能包含在内以解决相对路径?无论哪种方式,它似乎都巩固了我们的目标。

最佳答案

正斜杠对两种操作系统都适用,这是可行的方法。

我找不到对此的绝对引用,但它在 PHP 手册中的几个地方有指示,例如 herehere .而且,它适用于我这个 Windows 和 Linux 用户。

最后,您最终可能会在 Windows 上指定混合路径,例如 c:\\apache\\htdocs\\myapp/index.php一切正常。

关于php - 为 *Nix 和 Windows 设置 PHP 包含路径的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1959772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com