PHP, как записать данные в JSON? - PullRequest
3 голосов
/ 11 июня 2011

Я новее для php. Я хочу сделать кеш страницы PHP, запросить данные из MySQL и сохранить данные в формате JSON.

У меня много вопросов:

  1. какой тип файла мне хранить? .json или .txt или .cache? потому что мне также нужно использовать json decode для возврата данных на страницу.

  2. Я хочу использовать cron tab, делать много запросов mysql и записывать в один файл json. какой код записи мне выбрать? fopen, fwrite или file_get_contents или другая команда? (не закрывайте данные, но продолжайте писать. Я удалю файл и обновлю его в следующий раз)

  3. Если множественная запись в данные json (10 или более запросов mysql одновременно и запись в один и тот же файл json, каждый дочерний формат json, например, {name: ".$row['name']."}), как завершить начало { и внизу } чтобы сделать стандартный формат данных JSON?

    { // как добавить

    {name: ". $ Row ['name']."}

    {name: ". $ Row ['name']."}

    // многие имена из 10 запросов mysql

    } // и этот

Спасибо.

Ответы [ 4 ]

7 голосов
/ 11 июня 2011

Это json_encode()

json_encode () - возвращает JSON-представление значения

<?php
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);

echo json_encode($arr);
?>
2 голосов
/ 11 июня 2011
  1. Сохранение файла в формате .txt или .json не будет иметь значения.

  2. Я думаю, что фокус всего этого находится на странице json_encode . Вот пример с этой страницы:

Этот код:

<?php
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);

echo json_encode($arr);
?>

Выходы как это:

{"a":1,"b":2,"c":3,"d":4,"e":5}

3. Вы можете использовать fopen и fwrite для записи в ваш файл. Второй аргумент для fopen - это режим, вы хотите использовать «a» для добавления.

2 голосов
/ 11 июня 2011

какой тип файла я должен хранить

Это не имеет значения. Не существует фиксированного расширения, но я бы выбрал .json, чтобы было ясно, что файл должен содержать.

какой код записи выбрать?

Просто используйте file_put_contents , чтобы поместить строку JSON (см. Следующий раздел) в файл.

каждый дочерний формат json, такой как

Вы действительно не хотите использовать этот метод. Это может работать некоторое время, но становится очень сложным, когда вам нужно обрабатывать такие вещи, как цитирование и экранирование специальных символов. Вместо того, чтобы заново изобретать колесо, используйте для этого встроенные в PHP функции JSON .

Создайте необходимую структуру данных, используя строки, числа и массивы PHP, а затем положитесь на json_encode, чтобы превратить ее в строку.

Главное, что нужно быть осторожным, это то, что в зависимости от того, как выглядит ваш php array(), вы можете получить JSON [] против {}.

0 голосов
/ 11 июня 2011

Не пишите свой собственный кеш, потому что все, что вы пишете на PHP, будет медленнее, чем может быть поддержано собственными расширениями (такими как APC или memcached или даже сам MySQL !!).

Не кэшируйте как JSON. JSON не является «быстрым» для сериализации. Если вы делаете кеширование, вы вообще не хотите выполнять сериализацию. Просто храните его как есть.

MySQL выполняет кэширование запросов для вас. Если производительность является проблемой, сначала настройте запросы MySQL и схему базы данных. Кэширование - это одна из абсолютных последних оптимизаций, которую вы хотите выполнить.

Если вы хотите простой способ кеширования, создайте таблицу MySQL под названием «кеш» и используйте ее. Если вы хотите быстрый (маленький) доступ к файлу, используйте MySQL (серьезно). Если вы хотите еще более быстрый доступ к кешу, используйте кеш в памяти, такой как APC или memcached.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...