首先,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作为本地网络服务器。
答案 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”是同一文件的两个名称。