-3

我对使用 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("无法打开文件"); fclose($访问);

$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);

我有预感它与字符串相关的问题。非常感谢任何指针。

4

4 回答 4

1

#1。错误:

警告:file_put_contents() 期望参数 1 为字符串

文档中,它说第一个参数是string $filename和解释:Path to the file where to write the data..

使用示例:

$file = 'people.txt';
$current = "John Smith\n";
file_put_contents($file, $current);

#2。错误:

警告:fwrite(): 3 在...中不是有效的流资源

同样,在文档中它说第一个参数是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);
于 2013-01-20T09:19:58.307 回答
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

更好的是,阅读您要使用的功能的文档。

于 2013-01-20T09:25:03.767 回答
0

在使用某些功能之前阅读手册页是非常好的做法。我自己总是遵循它,没有例外。

比如说,从一个file_put_contents你可以学到两件事:

  1. $access应该是一个文件名
  2. 为了让它在一个循环中写很多行,必须使用特殊标志,否则文件将被最后一行不断覆盖
于 2013-01-20T09:19:33.830 回答
0

我实际上忽略了

fclose($access);

我应该在 fwrite() 之后将它放在它之前。现在一切正常。

于 2013-01-20T10:36:51.187 回答