我希望我能正确地提出这个问题,我根本不熟悉序列化/反序列化功能。
1)我有一个数据库表'数据',其中包含一个名为“ demo_data ”的字段。每个字段包含一堆随机字符,字符串非常非常长。示例:4fh7fjks2u839dk ...(...)我已经意识到,为了显示该字段的内容,必须首先使用unserialize函数处理数据(参见步骤2)。
2)功能如下:
反序列化定义:
function unserialize($data) {
if (is_serialized($data)) {
return @unserialize($data);
}
return $data;
}
调用unserialize函数:
function display_demo_data() {
return unserialize(base64_decode(data_field('demo_data')));
}
3)以上功能DO工作(测试,整个脚本很大,不是我自己编写的)
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
有谁知道格式化/过滤返回的数据?
感谢, dev101
答案 0 :(得分:1)
你的回报是json编码的。
$foo = '{"value_min":0,"value_max":0,"sString":"demo"}';
var_dump(json_decode($foo));
假设display_demo_data()
返回json,你会这样做:
<?php
$value = json_decode(display_demo_data());
?>
之后,您可以使用$ value对象打印数据。例如:
<?php
print $value->value_min;
?>
答案 1 :(得分:0)
如果它的JSON数据可以像
那样解码它$returnValue = json_decode('{"value_min":0,"value_max":0,"sString":"demo"}');
并使用
$returnValue -> value_min;
$returnValue -> value_max;
$returnValue -> sString;