-1

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

1)我有一个数据库表“数据”,其中有一个名为“ 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

有谁知道格式化/过滤返回的数据?

谢谢,dev101

4

2 回答 2

1

您的回报是 json_encoded。

$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;
?>
于 2013-09-10T16:43:42.623 回答
0

如果它的 JSON 数据你可以解码它

$returnValue = json_decode('{"value_min":0,"value_max":0,"sString":"demo"}');

并使用

$returnValue -> value_min;

$returnValue -> value_max;

$returnValue -> sString;
于 2013-09-10T16:44:35.243 回答