我正在 MAMP 上开发一个 PHP 程序,并且刚刚实现了以下奇怪的行为:
echo "<br/>PATH = ".dirname(__FILE__);
include 'include.php';
include.php:
<?php
echo "<br/>PATH = ".dirname(__FILE__);
?>
结果:
PATH = /users/me/stuff/mamp_server/my_site (All lower case)
PATH = /Users/me/Stuff/mamp_server/my_site (Mixed case)
是什么导致了这种不一致的行为,我该如何防范? (请注意,我不能将所有内容都转换为小写,因为该应用程序是针对 Linux 服务器的,其中文件路径区分大小写。)
更新:
__FILE__
和 __DIR__
存在此问题。
看起来这可能是一个没有解决办法的真正问题...除非我听到其他情况,否则将提交错误报告。
错误报告:
https://bugs.php.net/bug.php?id=60017
更新:
另一个注意事项:如果您在 Mac 上使用绝对路径 include(...),则需要大小写混合版本。
最佳答案
我在 MAC OS X 上开发 PHP 时遇到过类似的问题。您可以使用区分大小写的文件系统进行格式化,但如果您使用的是 Adobe 的设计软件,您可能会遇到麻烦:http://forums.adobe.com/thread/392791
真正的问题是,据说不区分大小写的文件系统实际上是部分不区分大小写的。您可以在同一个目录中创建两个名为“文件名”和“文件名”的文件,但“文件名”和“文件名”可能指向这两个文件:http://systemsboy.com/2005/12/mac-osx-command-line-is-partially-case-insensitive.html
关于php - Mac/MAMP 上的 PHP 文件路径大小写不一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7699412/