我需要序列化包含URL的数组:
阵列( 'url1'=> 'http://www.example.com', 'url2'=> 'http://www.example1.com' ) 并将其存储在DB中。
当我以标准方式序列化时,它不起作用,因为它包含特殊字符。我找到了使用base64_encode对其进行编码的解决方案。然后它工作,但在DB管理器程序中我无法读取字符串。有没有办法让这个工作没有base64_decode? p>
答案 0 :(得分:1)
如果您使用的是PHP 5+,请尝试使用JSON而不是本机PHP序列化程序。 JSON更便携。
但你的问题可能是自动转义报价。如果您能够显示您的输入和示例,将会很有帮助。输出到DB的输出。
答案 1 :(得分:1)
json_encode
目前很受欢迎,有助于提升数据的便携性。答案 2 :(得分:0)
没有理由为什么序列化不应该在这个例子上工作,所以它可能更多地与SQL查询中的输入进行充分的转义,而不是你正在进行的序列化问题。如果您正在使用MySQL,请尝试通过mysql_real_escape_string()运行序列化数据,然后再将其连接到SQL语句中。
另外,我倾向于选择json_encode()来将值序列化到数据库字段,因为序列化往往会产生很难手动读取的序列化数据,并且极难编辑。