【发布时间】:2013-03-28 11:01:32
【问题描述】:
首先,Mac OS X 不是我的本机操作系统,但由于我对 Ubuntu 很熟悉,所以大部分情况下它很容易过渡。
由于它是基于 Unix 的,我的印象是这个操作系统是区分大小写的,但 file_exists() 函数却另有说明。
在我的 htdocs 文件中,我有这 2 个文件:
test.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 服务器。
【问题讨论】:
-
不是您当前问题的答案,但很容易创建一个具有区分大小写的文件系统的小额外分区并挂载它,因为 osx 上的默认文件系统允许调整大小。将您的 Web 项目放在该分区上,以防止您自己创建与区分大小写相关的错误/问题。如果您决定创建指向新分区的符号链接,请注意您的 apache 路径。
-
谢谢你的建议,听起来如果我为我的 htdocs 文件夹创建一个分区,它应该可以大大减少这个问题。
-
您可以自己编写一个区分大小写的 file_exists() 版本。可以先获取父目录的文件列表,通过大小写比较判断当前文件是否在里面。
标签: php macos mamp file-exists