2

我在使用 PHPserializeunserialize函数时遇到了一些困难。我正在将数组插入到 MySQL DB 中serialize(array)。这是我在 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";}"
4

1 回答 1

1

FuelPHP 的一个人在此http://docs.fuelphp.com/general/views.html#/security上指出,所以这是我的问题。

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

于 2012-01-13T15:00:39.087 回答