Как читать / записывать структурированные данные в php? - PullRequest
1 голос
/ 14 февраля 2012

Я хочу прочитать , обновить , вставить данные из / в плоский файл в структуру, как показано ниже (простая версия) в php, а также вручную , Какой самый простой способ с этим справиться?

$schools = array(

    "PHCS"=> array(
        "full_name"=> "Pacific Hills Christian School",
        "version"=> "4.0.2b",
        "etc"=> "etc"
      ),

    "WAC"=> array(
        "full_name"=> "Wollondilly Anglican College",
        "version"=> "4.0.1",
        "etc"=> "etc"
      ),
  );

Нужно быть очень точным с синтаксисом и отступами, когда использование YAML и редактирование XML в vi тоже могут быть немного грязными.

Так я думал об использовании переменной массива php? Как я могу сохранить его в формате, как указано выше?

Ответы [ 4 ]

1 голос
/ 14 февраля 2012

хорошо, вы можете попробовать jason_encode / jason_decode

, это поможет вам отформатировать все ваши данные для вывода.Это также помогает вам управлять данными.

http://php.net/manual/en/function.json-encode.php

1 голос
/ 14 февраля 2012

Несколько вещей приходят на ум:

  • Сериализация, например file_put_contents($file, serialize($schools))
  • sqlite, который не является простым файлом, но с ним очень легко начать - вам просто нужно указать PDO на файл базы данных, и все готово. Вы можете редактировать с помощью CLI и веб-инструментов.

Редактировать: ах, если вам нужно редактировать с помощью текстового редактора, это не очень хорошо. Вместо этого вы можете использовать формат, который у вас есть в PHP -

return array(

    "PHCS"=> array(
        "full_name"=> "Pacific Hills Christian School",
        "version"=> "4.0.2b",
        "etc"=> "etc"
      ),

        "WAC"=> array(
        "full_name" => "Wollondilly Anglican College",
        "version"=> "4.0.1",
        "etc"=> "etc"
    ),
  );

Затем вы можете вставить это в файл и сделать $schools = require($schools), и он будет хорошо импортироваться. Я использую это для фиксации данных, и это работает довольно хорошо.

1 голос
/ 14 февраля 2012

Что ж, если вам нужно отредактировать файл вручную, довольно сложно победить YAML, потому что этот формат, вероятно, настолько близок, насколько вы собираетесь (на этой планете, по крайней мере ...) к формат файла, который был разработан для удобства редактирования вручную. "

Вы размышляете над «использованием переменной массива PHP» здесь действительно неактуально, потому что такие понятия применимы только к операции программы ... после того, как она прочитала данные в и перед тем, как впоследствии записать данные обратно . Они не имеют никакого отношения к тому, какой формат вы решили использовать.

Я бы посоветовал вам выяснить, какое представление данных проще всего для людей , а затем написать компьютерную программу для этого. Кроме того, поскольку существует вероятность того, что люди что-то украдут, программа должна не доверять своим данным. Он должен отвечать «доброжелательно, осмысленно и дипломатично», если он сталкивается с мусором, например:

  • "Ой, я просто не мог прочитать этот файл."
  • «Подождите минуту: эта запись должна начинаться с заглавного имени из трех или четырех символов, такого как WAC или PACS, но в строке 123456 - нет».
  • «Подождите минуту: эта запись должна содержать как минимум следующие ключи:« полное_имя »,« версия »и« и т. Д. », Но строка 567891 этого не делает."
  • "Поскольку я только что обнаружил следующие 5 ошибок в этом входном файле, как указано ранее, я отказываюсь обрабатывать любую его часть. (Поэтому я не просто подключил вашу базу данных.) «
0 голосов
/ 16 февраля 2012

Я использовал решение @ Phil php.net/manual/en/function.var-export.php

Не забудьте вставить

  • блок сценариев PHP, который начинается с <?php и заканчивается ?>
  • variable name подписан =

вы можете использовать что-то вроде

<?php \n\n\n\$schools=\n" . var_export($schools,true) . "\n\n\n?>";

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