PHP unserialize - 索引错误

时间:2012-01-13 00:30:15

标签: php serialization fuelphp

我在使用PHP serializeunserialize函数方面遇到了一些困难。我使用serialize(array)将数组插入MySQL数据库。这是我在DB中的价值

a:4:{i:0;s:29:"k44L1b_bisnode.com.xlarge.png";i:1;s:28:"q44L1b_bisnode.com.large.png";i:2;s:29:"q44L1b_bisnode.com.medium.png";i:3;s:28:"q44L1b_bisnode.com.small.png";}

如果我这样做

$images = unserialize( $apartment->images );

我会收到错误:ErrorException [ Notice ]: unserialize() [function.unserialize]: Error at offset 9 of 208 bytes$apartment是我的DB ORM对象,如果我执行类似echo $apartment->images的操作,它将输出上面的序列化字符串。

但如果我做这样的事情

$images = unserialize( 'a:4:{i:0;s:29:"k44L1b_bisnode.com.xlarge.png";i:1;s:28:"q44L1b_bisnode.com.large.png";i:2;s:29:"q44L1b_bisnode.com.medium.png";i:3;s:28:"q44L1b_bisnode.com.small.png";}' );

它会起作用......嗯? $ apartment-> images的var_dump()返回

string(208) "a:4:{i:0;s:29:"k44L1b_bisnode.com.xlarge.png";i:1;s:28:"q44L1b_bisnode.com.large.png";i:2;s:29:"q44L1b_bisnode.com.medium.png";i:3;s:28:"q44L1b_bisnode.com.small.png";}"

1 个答案:

答案 0 :(得分:1)

来自FuelPHP的人注意到http://docs.fuelphp.com/general/views.html#/security,所以这是我的问题。

安全
默认情况下,Views使用输出编码来清理使用Security :: htmlentities()传递给它们的任何内容。如果你想传递未经过滤的东西,你可以使用方法集($ name,$ value,false)。