Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP mkdir-为什么这是一个无效参数?_Php_Date_Mkdir - Fatal编程技术网

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

PHP mkdir-为什么这是一个无效参数?,php,date,mkdir,Php,Date,Mkdir,我想尝试创建以日期和当前时间命名的目录。我知道我可以使用php time()函数,但这对我来说很难理解。为什么我不能创建一个名为06-11-2014 11:37:04左右的目录?当我尝试使用此格式时,php mkdir函数给了我一个无效参数 php代码 <?php $newdate = date("m-d-Y H:i:s"); mkdir($newdate, 0755, true); ?> 您有: mkdir($newdate, 077, true); 但它应该是: mkd

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

php代码

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

mkdir($newdate, 0755, true);

?>

您有:

mkdir($newdate, 077, true);
但它应该是:

mkdir($newdate, 0777, true);
但也就是说,
777
权限是一种安全风险。您最好使用
775
755

mkdir($newdate, 0755, true);
777
权限的问题在于,它意味着任何有权访问您的系统的人都可以100%读取、写入或执行该目录中的任何内容。这只是打开了一扇大门,如果你被黑客攻击,你可能会感到头疼,甚至是像你自己输入错误路径那样的不经意的头痛&清除你本不应该清除的数据

文件和目录权限不应仅向世界上拥有
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)上可能会阻塞。此外,我在日期和时间之间加了一个下划线(
)。

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

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

由于
077
使用
0777
;您忘记了一个
7
。更好的方法是,使用
0755
这样更安全。@Fred ii-Hm使用0777或0755时运气不好,仍然得到无效参数。大多数文件系统不允许在文件或目录名中使用冒号。我在这方面运气不好,但我现在肯定会使用0755。还有其他想法吗?杰克,这是我使用“评论”的另一个原因就是这样,文件命名不允许我在目录名中使用冒号。就是这样!我会在可能的时候接受你的回答。我的文件系统不允许在目录标题中使用冒号。这是由于linux文件命名约定。旁注:我的(托管)服务器是linux,使用冒号对我来说很好。一定是它的设置方式,我无法控制。@wheatfiries我的回答也指出了
问题。但我相信这是MacOSX上的一个问题&可能是其他BSD变体。我刚刚试着在Ubuntu(Debian)上用冒号创建一个基于日期的目录,效果非常好。也许我现在需要研究GNU或文件系统的差异?@wheatfiries我认为这也是一件好事,因为根据经验,如果我在服务器上创建一个包含冒号的文件,然后尝试将其上载到我的计算机(基于Windows),Windows会给我一个错误。在使用文件命名约定时,我很少使用或从未使用的字符是连字符、空格和冒号,但在代码中是单独使用的。干杯