Mac/MAMP上PHP文件路径的大小写不一致?

Yar*_*rin 23 php mamp path case-sensitive

我正在开发一个关于MAMP的PHP程序,并且刚刚实现了以下棘手的行为:

echo "<br/>PATH = ".dirname(__FILE__);
include 'include.php';
Run Code Online (Sandbox Code Playgroud)

include.php:

<?php
echo "<br/>PATH = ".dirname(__FILE__);
?>
Run Code Online (Sandbox Code Playgroud)

结果:

PATH =/users/me/stuff/mamp_server/my_site(全部小写)

PATH =/Users/me/Stuff/mamp_server/my_site(Mixed case)

是什么导致了这种不一致的行为,我该如何防范它?(请注意,我不能只将所有内容转换为小写,因为应用程序的目的地是Linux服务器,其中文件路径区分大小写.)

更新:

这个问题存在于__FILE____DIR__.

看起来这可能是一个真正的问题,没有解决方法...除非我另有说明,否则将提交错误报告.

错误报告:

https://bugs.php.net/bug.php?id=60017

更新:

另一个注意事项:如果你在Mac上做一个绝对路径包含(...),它需要混合大小写版本.

Uns*_*ned 1

在与您的应用程序相同的目录中创建一个包含文件怎么样?

<?php return __DIR__; ?>
Run Code Online (Sandbox Code Playgroud)

像这样使用它:

$trueDIR = include('get_true_dir.php');
Run Code Online (Sandbox Code Playgroud)

从您上面发布的内容来看,这应该可行。是的,这是一个有点棘手的解决方法,但它是一种解决方法,即使在没有遇到此问题的系统上也应该有效。