Mac上的case_exists()区分大小写?

时间:2013-04-05 21:30:17

标签: php macos mamp file-exists

首先,Mac OS X不是我原生的操作系统,但由于我对Ubuntu很满意,所以大部分都是一个简单的过渡。

由于它是基于Unix的,我的印象是这个操作系统区分大小写,但file_exists()函数说不然。

在我的htdocs文件中,我有这两个文件:

test.php的

MyFiLeWiThMiXeDCaSe.php

在test.php中,我有这段代码:

if(file_exists('myfilewithmixedcase.php')) {
  echo 'exists';
} else {
  echo 'doesnt exist';
}

// ouputs: exists

任何人都知道这是怎么回事?为什么会这样?这导致了一个问题,因为当我们将这样的代码部署到linux OS时,file_exists()返回false。

顺便说一句:我正在使用MAMP PRO作为本地网络服务器。

3 个答案:

答案 0 :(得分:4)

尽管是BSD衍生OS X不是区分大小写的。或者更确切地说HF和HFS +文件系统不是,除非您在格式化磁盘时选择了区分大小写的选项。这通常没有完成,因为很多应用程序都存在这方面的问题(Adobe,MS等) - 或者至少它们是我最后一次在Tiger下试用时做的。

答案 1 :(得分:3)

OS X上的默认文件系统是不区分大小写的HFS +。

您可以将卷格式化为区分大小写的HFS +,并且有(脏)方法可以为现有卷启用区分大小写。但是,这些会破坏现有软件,您应该避免在根卷上区分大小写。

如果您出于某种原因需要区分大小写的文件系统(例如,构建Android需要它),您可以使用“磁盘工具”制作格式适当的磁盘映像。

请注意,OS X的UNIX基础适用于区分大小写的文件系统。

答案 2 :(得分:1)

默认情况下,Mac OS X不区分大小写,因此“FILE”和“file”是同一文件的两个名称。