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