【发布时间】:2013-09-10 16:33:29
【问题描述】:
希望我在这个问题上问对了,我对序列化/反序列化功能一点也不熟悉。
1) 我有一个数据库表“data”,其中有一个名为“demo_data”的字段。每个字段都包含一堆随机字符,字符串非常非常长。示例:4fh7fjks2u839dk... (...) 我意识到要显示该字段的内容,必须首先使用反序列化函数处理数据(参见步骤 2)。
2) 函数是这样的:
反序列化定义:
function unserialize($data) {
if (is_serialized($data)) {
return @unserialize($data);
}
return $data;
}
调用反序列化函数:
function display_demo_data() {
return unserialize(base64_decode(data_field('demo_data')));
}
3) 上面的函数确实有效(经过测试,整个脚本很大,不是我自己写的)
4) 重要部分:调用'demo_data'中存储的数据
<?php echo display_demo_data(); ?>
我正确地得到了存储的值:
{"value_min":0,"value_max":0,"sString":"demo"}
如您所见,这对最终用户来说是非常不愉快的。我想要的是?我希望数据格式正确,如下所示:
Value (Min): 0
Value (Max): - I wish to discard this values and info from echo call
sString: Demo
有人知道格式化/过滤返回的数据吗?
谢谢, 开发101
【问题讨论】:
-
呃...如果数据被序列化,您将
unserialize()重新定义为自身的递归函数。这将导致无限递归,然后... *戴上太阳镜* Stack Overflow。 YYYYEEEEEEAAAAAAAAAHHHHHHHHHHHHHHHHHHHHH -
正如我所说,它工作正常,我可能错过了一些重要的东西,但我不能在这里复制整个脚本......
-
Hrmm... 你的
unserialize()函数是类方法吗?这是我看到不会引发致命错误的唯一方法。 -
嗨,Sammitch,正如我上面所说的,我对这个功能一无所知。但是,你可能是对的。这就是我能找到的与串行/非串行内容相关的所有代码。
标签: php sql json serialization