为什么这是一个无效的参数?


PHP mkdir - Why is this an invalid argument?

我想尝试创建以日期和当前时间为标题的目录。我知道我可以使用php time()函数,但这对我来说很难阅读。为什么我不能创建一个名为06-11-2014 11:37:04之类的目录?当我尝试使用此格式时,php mkdir函数给了我一个无效的参数。

php代码

<?php
$newdate = date("m-d-Y H:i:s");
mkdir($newdate, 0755, true);
?>

日期中的冒号把它弄乱了。最好使用如下格式:

$newdate = date("m-d-Y H_i_s");

你有这个:

mkdir($newdate, 077, true);

但应该是:

mkdir($newdate, 0777, true);

但也就是说,777权限存在安全风险。您最好使用775755代替:

mkdir($newdate, 0755, true);

777权限的问题是它意味着100%有权访问您的系统的任何人都可以在该目录中读取,写入或执行任何内容。这只是打开了一扇门,如果你被黑了,你就会头疼,或者甚至是无意中头疼,比如你自己输错了路径&删除不该删除的数据

文件,目录权限不应该仅仅通过777向世界上的任何人开放。

EDIT:原始海报说他们仍然遇到问题,即使有正确的权限。我唯一的建议是这样修改代码:

$newdate = date("m-d-Y H:i:s");
mkdir($newdate, 0777, true);

:

$newdate = date("m-d-Y_H-i-s");
mkdir($newdate, 0755, true);

我认为问题是,一个文件或目录名称与:在他们只会阻塞在一些系统,如Mac OS X.此外,我在日期和时间之间放置了一个下划线(_)。