为什么is_dir()函数在CPanel服务器中不检查区分大小写

时间:2016-11-08 12:38:51

标签: php file directory cpanel

我在localserver中尝试了这个代码,如果我的目录已经有了foldername并且它不会接受要创建的相同文件夹,那么它会正常工作,但是如果我在服务器中上传了该部分。

如果目录中有带Alto和新文件夹的foldername,我尝试使用alto命名它只是为什么创建它。

如果有人知道解决方案。 enter image description here

<?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);
?>

2 个答案:

答案 0 :(得分:1)

我假设您的开发环境在不区分大小写的文件系统上运行(在Windows中,如屏幕截图所示),而应用程序则部署到区分大小写的文件系统(通常在Linux上)。

这可以解释两种环境之间行为的差异。

编辑:解决方法是将所有已创建的目录小写或大写,并对相同的大小写进行检查。

答案 1 :(得分:1)

完全排除这种情况。创建目录时请使用strtolower。这意味着使用它:

$folder_name=strtolower($_POST['folder_name']);

将来会像这样,你的所有文件夹都是小写的,不会有矛盾。

我希望它有所帮助