написано, что file_put_contents() идентична последовательным успешным вызовам функций fopen(), fwrite() и fclose(). Но такое чувство, что она не удаляет предыдущее содержимое файла и пишет поверх. А если короче - то остается кусок старого ))
Ну вот и хз, тоже не встречал, но по итогу пишу туда json и концовки вида "135","236"]154"] объяснить не могу, кроме как тем, что это 154 с предыдущего раза остаётся))