我不小心用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)?
谢谢!
您可以开始逐字符读取文件,并使用json_decode解析读取到的字符串,如果它返回的值不同于NULL,则您可以使用有效的json来覆盖文件内容。
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;
}
}
}