8

首先,Mac OS X 不是我的本机操作系统,但因为我对 Ubuntu 很熟悉,所以大部分情况下它是一个简单的过渡。

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

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

测试.php

MyFileWiThMiXeDCaSe.php

在 test.php 中,我有以下代码:

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

// ouputs: exists

任何人都知道这是如何/为什么会发生的?这导致了一个问题,因为当我们将这样的代码部署到 linux 操作系统时,file_exists()返回 false。

顺便说一句:我使用 MAMP PRO 作为本地 Web 服务器。

4

3 回答 3

5

尽管是 BSD 衍生 OS X 不区分大小写。或者更确切地说,HF 和 HFS+ 文件系统不是,除非您在格式化磁盘时选择了区分大小写的选项。通常不会这样做,因为许多应用程序(Adobe、MS 等)都存在此问题 - 或者至少他们在我上次在 Tiger 下尝试时这样做了。

于 2013-04-05T21:34:12.370 回答
3

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

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

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

请注意,OS X 的 UNIX 基础可以很好地与区分大小写的文件系统一起使用。

于 2013-04-05T21:31:47.487 回答
1

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

于 2013-04-05T21:32:26.263 回答