数据库中的序列化数据 - 如何使用php回显,过滤和格式化?

时间:2013-09-10 16:33:30

标签: php sql json serialization

我希望我能正确地提出这个问题,我根本不熟悉序列化/反序列化功能。

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

2 个答案:

答案 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;