为什么file_put_contents()给我的文件带来了疯狂的名字?

时间:2014-02-14 00:57:07

标签: php file

尝试使用PHP创建备份。

$filename = getcwd() . "/backup/" . $slug . date("Y-m-d-h:i:sa") . ".inc";
echo $filename;
file_put_contents($filename, $content);

预期的输出文件名:

myfile2014-02-13-4:53:04pm.inc
myfile2014-02-13-4:54:29pm.inc

实际输出文件名:

T6L3PF~C.INC
TAT6YB~L.INC

此外,创建文件需要很长时间。这是非常奇怪的事情:我也在同一个脚本中创建另一个文件 - 除了备份目录中没有。

$filename = getcwd() . "/" . $slug . ".html";
file_put_contents($filename, $content);

它始终完美无缺,始终立即创造,没有延迟。

myfile.html

备份文件的创建时间不超过一分钟,即使它位于脚本的.html部分之前!

2 个答案:

答案 0 :(得分:1)

看起来问题就在这里:

date("Y-m-d-h:i:sa")

应该产生:

2014-02-13-4:53:04pm

但显然:弄乱了一切。将其更改为date("Y-m-d-h.i.sa"),现在一切正常。

答案 1 :(得分:0)

  

smb://my/path

那你去吧。由于“:”不是Windows中的有效文件路径字符,因此Samba会提供假文件名而不是您期望的文件名。而是通过SSH挂载。