2014-02-14 39 views
0

尝试使用PHP创建备份。为什么file_put_contents()给我的文件疯狂的名字?

$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一部分!

+3

听起来像是一个Windows问题给我。 –

+0

我使用的是OSX,不知道服务器是什么,我认为它是LAMP。 – brentonstrine

+0

你在做什么备份? –

回答

1

貌似问题是在这里:

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

应该产生:

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

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

0

smb://my/path

那么你去。由于“:”在Windows中不是有效的文件路径字符,因此Samba会提供一个假文件名,而不是您期望的文件名。改为使用SSH进行安装。

+0

安装它的方式是否真的有所作为?该脚本在Linux服务器(AFAICT)上运行,并将该文件写入同一服务器上的目录。 – brentonstrine

+0

是的,它的确如此。 Samba假设客户端将是Windows机器,并为其提供Windows兼容的文件名。 –

+0

但是,如果我卸载驱动器,然后尝试在浏览器中查看该文件,它仍然是相同的,没有涉及桑巴。或者我误解了Samba的工作原理? Samba是否控制LAMP服务器上的所有文件创建? – brentonstrine