keslo
@keslo

Как осознать ошибки в указанном коде?

Добрый день.
Я тут на выходных начал осваивать PHP и запилил такой хард-код:
<?
	header('Content-Type: application/x-javascript; charset=utf8');
	
	$file = "base.json"; 			
	$fp = fopen($file, "a+");       
	
	$content = fread($fp, filesize($file));
	$obj = json_decode($content, true);
	
	$n = array("Min" => 1, "Sec" => 1);
	
	array_push($obj, $n);
	
	echo json_encode(json_encode($obj));
	
	fwrite($fp, "");
	fclose($fp);
	
?>


Идея кода такая:

- получаем запрос по AJAX
- проверяем присутствие файла base.json и считываем из него данные
- парсим прочитанные данные из JSON в массив
- дозаписываем в массив данные
- переводим в JSON и отправляем обратно

Код рабочий. Но получилось как-то ужасно. Например это:
echo json_encode(json_encode($obj));
Методом научного тыка использовал двойной json_decode и код заработал...
Почему так?

Буду благодарен вашим замечаниям и советам по улучшению кода.
  • Вопрос задан
  • 2329 просмотров
Пригласить эксперта
Ответы на вопрос 1
0neS
@0neS
1) У json корректный content-type application/json
2) Причем здесь ajax?
3) Зачем двойной json_decode?
4) ?> в конце php-файла ставить не нужно
<?php
    $file = file_get_contents('./file.json');
    $content = json_decode($file, true);
    $n = array("Min" => 1, "Sec" => 1);
    array_push($content, $n);
    
    header('Content-Type: application/json; charset=utf8');
    echo json_encode($obj);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы