摆脱JSON文件中的重复内容?

时间:2013-11-21 23:26:42

标签: php json

我意外地使用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)?

谢谢!

1 个答案:

答案 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;
       }
    }
}