使用 PHP 进行序列化和反序列化以添加值


Serializing & Deserialzing with PHP to add values

这里有我的代码。目前,它显示原件,对原件进行编码,然后对其进行解码;现在不知何故我需要能够获取我的序列化数组并为其添加另一个值!

有谁知道我如何使用PHP做到这一点?也许在一个 Jquery 示例中,我可以输入另一个数字,它会将该数字添加到数组中并对其进行序列化?

最终,序列化的数据将存储在MySQL row中,直到它被发送到用户的浏览器,然后被反序列化以使用这些数字来查找项目,有人有任何想法吗?

<?php
        $array["favoritesid1"] = "546";
        $array["favoritesid2"] = "516";
        $array["favoritesid3"] = "815";
        $array["favoritesid4"] = "234";
        $array["favoritesid5"] = "765";
        $str = serialize($array);

        echo "String Original:";
        print $str . "'n<br><br>";
        $strenc = urlencode($str);
        echo "String Original Encoded:";
        print $strenc . "'n<br><br>";
        $strunserialized = unserialize(urldecode($strenc));
        echo "String Original De-Encoded:";
        var_dump($strunserialized);

        ?>

这很简单,您只需在取消序列化数组后向数组添加一个实例,因为unserialize()会重新创建序列化数组,然后根据需要重新序列化它。

<?php
$array["favoritesid1"] = "546";
$array["favoritesid2"] = "516";
$array["favoritesid3"] = "815";
$array["favoritesid4"] = "234";
$array["favoritesid5"] = "765";
$str = serialize($array);
echo "String Original:";
print $str . "'n<br><br>";
$strenc = urlencode($str);
echo "String Original Encoded:";
print $strenc . "'n<br><br>";
$strunserialized = unserialize(urldecode($strenc));
echo "String Original De-Encoded:";
var_dump($strunserialized);
echo 'Add another occurance';
$strunserialized["favoritesid6"] = "666";
print_r( $strunserialized );
echo 'Re Serialize the array';
$new_serial = serialize($strunserialized);
print $new_serial;
?>