【问题标题】:Why is_dir() function is not checking case sensitive in CPanel server为什么 is_dir() 函数在 CPanel 服务器中不检查区分大小写
【发布时间】:2016-11-08 12:38:50
【问题描述】:

我在本地服务器中尝试了此代码,如果我的目录已经具有该文件夹名称并且它不接受要创建的相同文件夹,但如果我将部分上传到服务器中,它可以正常工作。

如果该目录的文件夹名称带有 Alto 和新文件夹,我尝试使用 alto 命名它刚刚创建,为什么会这样。

如果有人知道解决方案。

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

【问题讨论】:

  • 你能添加一个截图,它添加了同名文件夹,但在服务器上是小写的吗?显示两个文件夹,同名,一个大写,一个小写。
  • 看到刚才的问题我加了Cpanel的截图
  • 您已经删除了代码,请添加您的代码,看看哪里出了问题。
  • 立即查看@AbhayMaurya
  • 第一个文件夹名称可能是 AIto(使用大写字母 i 不是小 L)。您可以通过创建一个新的文件夹名称来确保这一点:test 并尝试使用 Test 再次创建它,如果问题仍然存在,则使用我为未来案例提供的解决方案。

标签: php file directory cpanel


【解决方案1】:

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

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

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

希望对你有帮助

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • Okie 那么我该如何在这种环境下做到这一点
    • @KavyaShree,我编辑并添加了解决方法的建议
    猜你喜欢
    • 1970-01-01
    • 2015-01-02
    • 1970-01-01
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多