我在使用PHP serialize
和unserialize
函数方面遇到了一些困难。我使用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";}"
答案 0 :(得分:1)
来自FuelPHP的人注意到http://docs.fuelphp.com/general/views.html#/security,所以这是我的问题。
安全强>
默认情况下,Views使用输出编码来清理使用Security :: htmlentities()传递给它们的任何内容。如果你想传递未经过滤的东西,你可以使用方法集($ name,$ value,false)。