I am having some difficulties with PHP serialize and unserialize functions. I am inserting array into MySQL DB with serialize(array). This is my value in 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";}

If I do something like this

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

I will get error: ErrorException [ Notice ]: unserialize() [function.unserialize]: Error at offset 9 of 208 bytes. $apartment is my DB ORM object and if I do something like echo $apartment->images it will output me the above serialized string.

But if I do something like this

$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";}' );

It will work... Huh? var_dump() of $apartment->images returns

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";}"
有帮助吗?

解决方案

A guy from FuelPHP noted on this http://docs.fuelphp.com/general/views.html#/security so this was my issue.

Security
By default, Views use output encoding to sanitize anything you pass to them using Security::htmlentities(). If you want to pass something unfiltered, you can use the method set($name, $value, false).

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top