file_put_content资源ID#233

时间:2018-01-31 06:43:24

标签: php

$data = json_encode($data, JSON_UNESCAPED_UNICODE);

$log = base_path()."/storage/logs/trade.log";

if ( !file_exists ($log) ) {
    $data = fopen($log, "w");
}

file_put_contents($log, $data . PHP_EOL.PHP_EOL, FILE_APPEND);

我有一个页面使用file_put_contents来记录日志。当我的文件夹不存在文件时,它会自动创建文件并在其中添加日志

我的问题是第一次自动创建文件并将内容放入其中。它出来了 - 资源ID#233

第二次没有包装箱文件将是正常没有任何问题

任何人都知道如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

fopen()会返回resource

file_put_contents()撰写您的文件并将$data转换为字符串(在__toString()上调用resource)。

第二次,文件存在。因此,程序不会传入if条件,而是写入包含JSON的$data

要解决您的问题,只需删除if阻止。

文件说:

  

如果filename不存在,则创建该文件。否则,将覆盖现有文件,除非设置了FILE_APPEND标志。