我意外地使用fopen("folder/".$filename.".json", "a");
将几个(相同的!)json文件附加到单个json文件中。真是一团糟..任何人都知道“清理”这些文件并摆脱重复内容的解决方案?
现在,我的每个json文件看起来都与此相似(尽管没有换行符):
{"next_cursor":0,"next_cursor_str":"0","previous_cursor":0,
"previous_cursor_str":"0","lists":[{"id":...
...
}]}
{"next_cursor":0,"next_cursor_str":"0","previous_cursor":0,
"previous_cursor_str":"0","lists":[{"id":...
...
}]}
{"next_cursor":0,"next_cursor_str":"0","previous_cursor":0,
"previous_cursor_str":"0","lists":[{"id":...
...
}]}
etc.
实际上,每个文件中的结构总是相同的。每个块都以{"next_cursor":...
有没有人知道如何解决这个问题(最好是用PHP)?
谢谢!
答案 0 :(得分:0)
您可以逐个字符地开始读取文件并使用json_decode解析读取的字符串,如果它返回的值不同于NULL,那么您可以使用有效的JSON来覆盖文件内容。 / p>
foreach ( $files as $file ) {
$fp = fopen( $file, 'r');
$content = '';
while ( !feof($fp) ) {
$content .= fread( $fp, 1 );
if ( json_decode($content) !== null ) {
fclose($fp);
file_put_contents( $file, $content );
break;
}
}
}