//序列化一个数组:
serialize(array("asdoasod\'asdasd", "asdaspdaso\\\\\\pdopasopd"));
//返回结果:
a:2:{i:0;s:16:"asdoasod\'asdasd";i:1;s:22:"asdaspdaso\\\pdopasopd";}
//我们一般存进数据库,带\号直接存进数据库会有一个问题,会出现自动去除'\'
//假如去除了'\'
//s:16:  这个16代表长度
//再从数据库中取出来数据,s:16的长度将会变短,这个时候:
unserialize(); //就会出现问题!网友给出的解决方案
方案1:
/**
* 将字符串转换为数组
*
* @param    string  $data   字符串
* <a href="" target="_blank" rel="nofollow">@return</a>   array   返回数组格式,如果,data为空,则返回空数组
*/
function string2array($data) {
    if($data == '') return array();
    @eval("\$array = $data;");
    return $array;
}
/**
* 将数组转换为字符串
*
* @param    array   $data       数组
* @param    bool    $isformdata 如果为0,则不使用new_stripslashes处理,可选参数,默认为1
* <a href="" target="_blank" rel="nofollow">@return</a>   string  返回字符串,如果,data为空,则返回空
*/
function array2string($data, $isformdata = 1) {
    if($data == '') return '';
    if($isformdata) $data = new_stripslashes($data);
    return addslashes(var_export($data, TRUE));
}方案2:
PDO::prepare()
或者
base64_encode(json_encode($array));方案3:
用 htmlspecialchar() 处理一下在系列化如果遇到此问题你的解决方案是什么呢,欢迎留言讨论!










