Php fwrite / fclose警告

时间:2016-04-10 04:21:15

标签: php fwrite fclose

我有以下代码片段,它的工作原理是:

 d3.selectAll(".map-wrapper").on("click", "g", function(event) {
    event.preventDefault();
    var ward = d3.select($(this)).data().ward; 
 });

但运行时会记录以下警告:

g

这可能是我的逻辑错误。也许有人可以在这里说清楚一点?

2 个答案:

答案 0 :(得分:1)

file_put_contents可以一次性处理打开,写入和关闭的操作 - 无需在其后调用fwritefclose。 (不仅没有必要 - 它甚至没有任何意义,因为使用file_put_contents你甚至没有文件句柄可以开始。)

file_put_contents返回写入的字节数,一个整数值 - 这就是你得到这些警告的原因。

答案 1 :(得分:1)

使用fwrite()时,您根本不需要fclose()file_put_contents()。来自the docs for file_put_contents()

  

此功能与连续调用fopen()fwrite()fclose()以将数据写入文件相同。

您的代码应如下所示:

$file = fopen("../offer/work/uploads/".$php_id.".html","w");
fwrite($file,$data); // Note: you could use file_put_contents here, too...
fclose($file);
$txt = "<?php include 'work/uploads/".$php_id.".html';?>";
$slot = file_put_contents('../offer/slots.php', $txt.PHP_EOL , FILE_APPEND);
$theCounterFile = "../offer/count.txt";
$oc = file_put_contents($theCounterFile, file_get_contents($theCounterFile)+1);

至于为什么你的当前代码出错:fwrite()fclose()期望第一个参数是一个资源(你从fopen()获得的返回值的类型)。但是你传递的是file_put_contents()返回的值,它是一个整数。所以,你得到一个错误。