分享

关于php序列化的问题

 Ralf_Jones 2006-03-30
关于php序列化的问题

Posted by: dreamriver 2005-02-16 15:06
将页面中所有text、textarea等input元素post过来的数组,序列化后存入mysql数据库的一个字段中。
问题:如果元素内容中包含“‘”则系统自动转义为“\‘”,序列化后将字符串存入数据库,但这时数据库中的内容已经不包含"\"反斜线了。因此反序列化就会失败,如何解决这个问题?

Posted by: dualface 2005-02-17 19:55
QUOTE (dreamriver @ 2005-02-16 15:06)
将页面中所有text、textarea等input元素post过来的数组,序列化后存入mysql数据库的一个字段中。
问题:如果元素内容中包含“‘”则系统自动转义为“\‘”,序列化后将字符串存入数据库,但这时数据库中的内容已经不包含"\"反斜线了。因此反序列化就会失败,如何解决这个问题?

不是很清楚你说的自动转义是在哪一个阶段发生的。

不过我的做法一般是在处理POST数据时实现检查 get_magic_quotes_gpc(),如果设置为 On,则使用 stripcslashes() 将 POST 数据中的转义符号去掉。然后用 mysql_real_escape_string() 将要保存的数据转义为 mysql 允许的格式,最后才存入数据库。

这样做以后,从数据库中取出来的数据就是用户提交的数据,不带任何转义符号。

Posted by: dreamriver 2005-02-18 18:08
问题解决了。就是楼上所说的这样。关键是要在入库之前先将原始信息序列化。然后使用mysql_real_escape_string() 或者 addslashes将序列化后的字符串转义。在ok了。
谢谢!!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约