21,887
社区成员
发帖
与我相关
我的任务
分享
$str = 'array(2) { [1] = > array(6) { ["m_product_header_id"] = > int(1) ["product_name"] = > string(5) "test1" ["product_unitprice"] = > int(3) ["product_point_rate"] = > int(4) ["limit_nums"] = > int(5) ["limit_times"] = > int(6) } [2] = > array(6) { ["m_product_header_id"] = > int(2) ["product_name"] = > string(5) "test2" ["product_unitprice"] = > int(4) ["product_point_rate"] = > int(5) ["limit_nums"] = > int(6) ["limit_times"] = > int(7) } } ';
$str = "array(2) { [1] = > array(6) { ["m_product_header_id"] = > int(1) ["product_name"] = > string(5) "test1" ["product_unitprice"] = > int(3) ["product_point_rate"] = > int(4) ["limit_nums"] = > int(5) ["limit_times"] = > int(6) } [2] = > array(6) { ["m_product_header_id"] = > int(2) ["product_name"] = > string(5) "test2" ["product_unitprice"] = > int(4) ["product_point_rate"] = > int(5) ["limit_nums"] = > int(6) ["limit_times"] = > int(7) } } ";
$reg = array(
'/array\((\d+)\)\s*/is',
'/\s=\s>\s/',
'/\[(["\w]+)\]/e',
'/int\((\d+)\)|string\((\d+)\)\s"(\w+)"/e'
);
$replace = array(
'a:\\1:',
'',
'key_repalce("\\1")',
'val_repalce("\\1", "\\2", "\\3")'
);
function key_repalce($e) {
if(!$e) return;
if(is_numeric($e)) {
return 'i:'.$e.';';
} elseif(is_string($e)) {
$e = str_replace('"', '', $e);
return 's:'.strlen($e).':"'.$e.'";';
}
}
function val_repalce($e_int, $e_strlen, $e_str) {
if($e_int) {
return 'i:'.$e_int.';';
} elseif($e_strlen) {
return 's:'.$e_strlen.':"'.$e_str.'";';
}
}
$serialize_str = str_replace(' ', '', preg_replace($reg, $replace, $str));
print $serialize_str;
print "\n";
print_r(unserialize($serialize_str));