我很擅长使用fwrite和file_put_contents,并且在for循环语句的每一行都遇到错误:
Warning: file_put_contents() expects parameter 1 to be string,
或
Warning: fwrite(): 3 is not a valid stream resource in...
这是代码:
$ databank =“data.txt”; $ access = fopen($ databank,'w')或die(“cant 打开文件“); fclose($ access);
$row = "$ent1".' | '."$ent2".' | '."$perc1a".'% | '."$perc1a_frac".'% | '."$frac1a".' | '."$perc2a".'% | '."$perc2a_frac".'% | '."$frac2a".' | +'."$a".' | '."$new_ent1".' | '."$perc1b".'% | '."$perc1b_frac".'% | '."$frac1b".' | '."$perc2b".'% | '."$perc2b_frac".'% | '."$frac2b".' \n';
fwrite($access, $row);
//file_put_contents($access,$row);
我预感到与字符串相关的问题。任何指针都非常感激。
答案 0 :(得分:1)
警告:file_put_contents()期望参数1为字符串
在documentation中,它表示第一个参数为string $filename
,并对其进行了解释:Path to the file where to write the data.
。
使用示例:
$file = 'people.txt';
$current = "John Smith\n";
file_put_contents($file, $current);
警告:fwrite():3不是......
中的有效流资源
同样,在documentation中,它表示第一个参数是resource $handle
,而wxplanation是:A file system pointer resource that is typically created using fopen().
。
使用示例:
$fp = fopen('data.txt', 'w');
fwrite($fp, '1');
fwrite($fp, '23');
fclose($fp);
答案 1 :(得分:1)
使用file_put_contents(),你应该有以下内容:
$access
- 应该是一个文件名,因为根据你的问题,你在循环中使用它,所以你应该使用FILE_APPEND
来附加新内容,如:
$access = "some_filename.txt";
file_put_contents($access, $yourDataHere, FILE_APPEND | LOCK_EX);
//LOCK_EX prevents anyone else writing to the file at the same time
更好,请阅读您要使用的功能的文档。
答案 2 :(得分:0)
在使用某些功能之前,阅读手册是非常好的做法。我自己总是遵循它,没有例外。
说,从file_put_contents开始,你可以学到两件事:
$access
应为文件名。 答案 3 :(得分:0)
我实际上忽视了
fclose($access);
我把它放在fwrite()之后应该在之后。一切都还好。