$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
第二次没有包装箱文件将是正常没有任何问题
任何人都知道如何解决这个问题?
答案 0 :(得分:3)
fopen()
会返回resource
。
file_put_contents()
撰写您的文件并将$data
转换为字符串(在__toString()
上调用resource
)。
第二次,文件存在。因此,程序不会传入if条件,而是写入包含JSON的$data
。
要解决您的问题,只需删除if
阻止。
文件说:
如果filename不存在,则创建该文件。否则,将覆盖现有文件,除非设置了FILE_APPEND标志。