如何从存储在txt文档中的序列化数组中读出一个值? PHP

时间:2014-11-16 11:57:10

标签: php arrays serialization

我刚开始用php做一些简单的事情。现在我有一个问题...... 在这段代码中,我打开一个txt文件,并在其中写入一个键值数组。 最后,我想从这个数组中读出一个值,该值在txt文档中被序列化存储。

$open = fopen("write/doc.txt", 'w+');
$content = array ("red" => "FF0000", "green" => "#00FF00", "blue" => "#0000FF");
$contentserialized = serialize($content);

fwrite($open, $contentserialized);

fclose($open); 

所以直到现在一切正常。使用此代码,我可以显示文件的内容:

$file = file_get_contents("write/doc.txt");
echo $file;

但我只想要一个价值。如何选择页面上“绿色”键的值? 如果你能告诉我,那会很好!

2 个答案:

答案 0 :(得分:0)

echo unserialize($file)['green'];

或者如果这不起作用(我的php有点生疏)

$array = unserialize($file);
echo $array['green'];

http://php.net/manual/en/function.unserialize.php

答案 1 :(得分:0)

您可以加载整个文档并将内容解析回PHP数组。这将允许您像处理任何其他数组一样处理数据。像下面这样的东西就足够了。

$file = 'write/doc.txt';
$fhandle = fopen($file, 'r');
$content = fread($fhandle, filesize($file));

$content = unserialize($content);

echo $content['green'];

作为一种好习惯,请记得关闭文件句柄。

fclose($fhandle);

希望这有帮助。

http://php.net/manual/en/function.unserialize.php