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

标签 php path mamp case-sensitive

我正在 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 时遇到过类似的问题。您可以使用区分大小写的文件系统进行格式化,但如果您使用的是 Adob​​e 的设计软件,您可能会遇到麻烦: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/

相关文章:

reactjs - React Router 多个参数不起作用

php - Laravel 5 Lang::get() 替换

php - 从表中删除包含主键的行

javascript - 从选择菜单选项创建唯一的隐藏字段 IDS

c++ - 总是必须在 Windows 上的 Eclipse 中定义 PATH 变量

apache - 通过 LAN 访问多个 MAMP Pro 站点?

php file() 方法在服务器中不起作用

c# - 'GraphicsPath.AddString' 中的字体比通常的字体小

php - PHP post 请求没有显示任何内容

mysql - MAMP MySQL innodb 和丢失错误