设置PHP的正确方法包括*Nix和Windows的路径

Jef*_*eff 7 php unix linux windows include-path

这是*nix和Windowsdefine的包含路径的正确方法吗?

define( 'INCPATH', realpath( dirname( __FILE__ ) ) . '/' );
Run Code Online (Sandbox Code Playgroud)

请注意上面包含的尾随正斜杠.两个操作系统的包含/需要相同的正斜杠吗?

编辑(更新答案):

根据我的收集,下面的代码是为nix和Windows操作系统普遍定义include/require路径的正确方法.请在下面的评论中随意更正任何内容.

令我感到困惑的是我看到的许多例子显示替换back-slashes (\)forward-slashes(/).根据以下一些答案,这是不必要的.

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

define( 'INCPATH', realpath( dirname( __FILE__ ) ) . DIRECTORY_SEPARATOR );
Run Code Online (Sandbox Code Playgroud)

该代码产生以下结果:

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

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

一个简短的解释,从内部(__FILE__)out(realpath())开始工作:

FILE文件的完整路径和文件名.始终包含已解析符号链接的绝对路径.

dirname()返回的字符串是删除了任何尾部/组件的路径.负责删除文件名.

realpath()成功返回规范化(标准化/标准化)绝对路径名.生成的路径将没有符号链接'/./''/../'组件.我认为这包括彻底性,因为__FILE__已经解决了符号链接.或者它可能包括解决相对路径?无论哪种方式,它似乎巩固了我们的目标.

Der*_*huk 8

正斜杠适用于两种操作系统,这是可行的方法.

我找不到对此的绝对引用,但它在PHP手册中的几个地方都有说明,就像这里这里一样.而且,它适用于我,一个Windows和Linux用户.

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