我需要序列化svg图像,以便将其存储到cookie中。
我需要设置cookie,然后在返回时反序列化svg图像。
所以基本上我的问题归结为将svg序列化为可以存储在cookie中的东西。我怎么能这样做?
我知道php中有serialize()和unserialize(),但序列化会带有混合值,我不确定svg会属于那个类别。
我稍微研究了混合值,看起来它可以包含struct
,array
s,int
等,但不是svg。如果我对此有误,请告诉我,因为使用序列化和反序列化会使事情变得更容易。
谢谢。
答案 0 :(得分:1)
嗯,可缩放矢量图形只是XML,因此只是文本(通常是UTF-8编码,但它应该与ASCII相同,除非您明确添加任何非ASCII字符)。然而,SVG字符串将包含cookie中不允许的特殊字符,因此您需要转义这些字符(分号,逗号和空格应该被转义,如果我没记错的话,您可以使用php中的urlencode函数)。这就是序列化方面的全部内容。最大的问题可能是大小限制:cookie不得超过4096个字符,包括名称的长度。对于更复杂的SVG,这可能太少了。