有可能,在PHP中,用“人类可读的语言”序列化数组,然后反序列化它?

时间:2012-11-24 16:57:04

标签: php serialization deserialization store human-readable

我要求PHP脚本进行序列化和反序列化。有时我只是手动编辑数组(在database.txt中)。

2 个答案:

答案 0 :(得分:2)

您可以将数组导出为JSON(JavaScript Object Notation)字符串,然后再对其进行解码。

您可以分别使用json_encodejson_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))。

答案 1 :(得分:1)

您应该看一下JSON格式。根据您要序列化的数据类型,这应该是您想要的,并且它非常易读且易于编辑。

特别是,您的数组仅限于包含数字,字符串,浮点数,布尔值或其他数组。但是,您可以存储数字索引和关联数组。

有关标准的更多信息,请查看http://www.json.org/和php函数,请参阅http://us2.php.net/json_encodehttp://us2.php.net/json_decode