PHP is_dir有缺陷

时间:2017-03-10 10:44:04

标签: php

奇怪的行为,可能: (文件夹的名称取决于日期 - 目的是网站的点击计数器,按天细分)

if (!is_dir($folder)) { // first access in the day
   mkdir($folder);
}

嗯:在互联网上的服务器上运行良好。 但是当我在本地尝试使用Easy PHP的服务器模拟器时,会发生:

(a)第一次,没问题。该文件夹不存在并且已创建。

(b)随后,例如对页面刷新,程序流程再次进入IF(!!!)生成类型的错误(在mkdir行):"警告:mkdir():在[...]"。

中没有这样的文件或目录

目录$ folder的所有父部分都存在。

由于

1 个答案:

答案 0 :(得分:0)

尝试使用递归目录创建功能:

function mkdir_r($dirName, $rights = 0777)
    {
        $dirs = explode(DIRECTORY_SEPARATOR , $dirName);
        $dir = '';
        if (strpos($dirs[count($dirs) - 1], '.')) {
            array_pop($dirs);
        }
        foreach ($dirs as $part) {
            $dir .= $part . DIRECTORY_SEPARATOR ;
            if (!is_dir($dir) && strlen($dir) > 0) {
                mkdir($dir, $rights);
            }
        }
    }

这样,如果它们不存在,就会创建您想要创建的所有目录。

不幸的是,mkdir没有递归地工作。