Возможно ли в PHP сериализовать массив в "читаемый человеком язык" и затем десериализовать его?
Прошу сериализацию и десериализацию с помощью PHP-скрипта. Только иногда я редактирую массив вручную (в database.txt).
2 ответа
Вы можете экспортировать массив в виде строки JSON (JavaScript Object Notation), а затем снова декодировать его.
Вы можете сделать это с помощью функций json_encode
а также json_decode
соответственно.
$a = array(
'a' => 1,
'b' => 2,
'c' => array(1,2,3));
file_put_contents('database.txt', json_encode($a));
// encoded: {a:1,b:2,c:[1,2,3]}
// ---
$a = json_decode(file_get_contents('database.txt'), TRUE);
// specify TRUE to parse objects as assoc. arrays ---^
Обратите внимание, что все это может быть не самой лучшей идеей (меня немного беспокоит имя файла, которое вы выбрали - если вы хотите иметь БД, то используйте БД! (Например, sqlite)).
Вы должны взглянуть на формат JSON. В зависимости от того, какой тип данных вы сериализуете, это должно делать то, что вы хотите, и они довольно удобочитаемы и легко редактируются.
В частности, ваш массив может содержать только числа, строки, числа с плавающей запятой, логические значения или другие массивы. Однако вы можете хранить как числовые, так и ассоциативные массивы.
Для получения дополнительной информации о стандарте, посмотрите на http://www.json.org/ и на функции php, смотрите http://us2.php.net/json_encode и http://us2.php.net/json_decode