【发布时间】:2016-11-08 08:53:33
【问题描述】:
下面是我的代码
<?php
$folder_type=$_POST['folder_type'];
$folder_name=$_POST['folder_name'];
$images="images";
$path="../../".$folder_type."/".$folder_name;
if (!is_dir("../../".$folder_type."/".$folder_name)) {
mkdir("../../".$folder_type."/".$folder_name);
mkdir("../../".$folder_type."/".$folder_name."/".$images);
$content = file_get_contents('../../default_code.php');
$fp = fopen($path . "/$folder_name.php","wb");
fwrite($fp,$content);
fclose($fp);
}
else
{
echo "0";
}
chmod("../../".$folder_type."/".$folder_name, 0777);
?>
如果我的目录的文件夹名称为 ALTO,并且如果我尝试使用 alto 的新文件夹名称,它将不接受正确的 bt is_dir() 函数不检查大小写。如果我尝试使用 ALTO,它不会接受。那么有没有其他方法可以检查我的新文件夹名是否已经存在于目录中?
请帮助任何人。提前致谢。
【问题讨论】:
-
区分大小写的原因仅仅是服务器系统上通常使用的文件系统是区分大小写的。 unixoid 环境中的文件系统一直是区分大小写的。只有 MS-Windows 的行为不同,在 OSX 环境中,这取决于配置。
-
解决您的情况的最佳方法就是遵守纪律并坚持使用小写字母作为文件名。这样,事情就很明确了,因此是可移植的。因此,您可以在环境之间移动您的项目或应用程序,而不会破坏一切。
-
那么我们该如何处理这个问题
-
@arkascha 真的,OSX 有一个配置选项吗?我从来不知道。
-
strtolower() 我将尝试比较它现在的工作情况