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

时间:2014-06-11 17:38:09

标签: php date mkdir

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

php code

<?php
$newdate = date("m-d-Y H:i:s");

mkdir($newdate, 0755, true);

?>

2 个答案:

答案 0 :(得分:8)

日期中的冒号搞砸了。你最好的选择是使用这样的格式:

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

答案 1 :(得分:3)

你有这个:

mkdir($newdate, 077, true);

但它应该是:

mkdir($newdate, 0777, true);

但是说777权限是一种安全风险。您最好使用775755代替:

mkdir($newdate, 0755, true);

777权限的问题是,这意味着有权访问您系统的任何人都可以在该目录中读取,写入或执行任何内容。如果你被黑客攻击或甚至无意中的头痛,就像你自己在错误的路径和消除你不应该消灭的数据。

文件&amp;目录权限不应仅仅通过777向世界上任何人开放。

编辑:原始海报表示即使更正了权限,他们仍然会遇到问题。我唯一的建议是改变代码:

$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.此外,我在日期和时间之间放置了一个下划线(_