前两天,使用file_put_contents方法, 传入两个实参,将内容写入文件,一直报错php
file_put_contents(E:\config.php,content): failed to open stream: Invalid argument in 。。。python
很少说,一番百度,终于寻得前辈留下的葵花宝典:web
http://www.howtobuildsoftware.com/index.php/how-do/Fp6/php-php-file-put-contents-failed-to-open-stream-invalid-argumentwindows
内容以下:api
Please help! I have tried figuring this out for over an hour What i am trying to do is to get form values via POST, and then put these into a timestamped txt file The error i get is:ui
Warning: file_put_contents(D:\wamp\www\weboldal\hu\php\en\03-14-15-11:08:48.txt): failed to open stream: Invalid argument in D:\wamp\www\weboldal\hu\php\en\formprocessing2.php on line 18this
if ($_POST["type"] == "Type1") { print "Type1"; $filename = date("m-d-y-h:i:s"); $fullfilename = "D:\\wamp\\www\\weboldal\\hu\\php\\en\\".$filename.".txt"; print $fullfilename; while (file_exists($fullfilename)) { print "Please wait a few seconds, server is busy"; sleep(1); } $type = $_POST["type"]; $name = $_POST["name"]; $email = $_POST["email"]; $password = $_POST["password"]; $contents = $type."r\n".$name."r\n".$email."r\n".$password; file_put_contents($fullfilename,$contents,LOCK_EX);
EDIT: The problem was that windows would not accept colons in the filename, thanks to user @Hobo Sapiens for pointing that outspa
Windows will reject the filename with the timestamp as it is because of the colons(冒号). Remove those and you should be fine..net
上面代码:file_put_contents($fullfilename,$contents,LOCK_EX);只是多传入LOCK_EX这个参数,在文件写入的时候进行锁定,问题解决!code
可是,疑问也来了,
colons(冒号)和LOCK_EX(锁定)有啥联系?
求大神稍稍指点迷津