-1

これについて正しく質問したことを願っています。シリアル化/非シリアル化機能にまったく慣れていません。

1) ' demo_data 'というフィールドを持つデータベース テーブル ' 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)上記の機能は機能します(テスト済み、スクリプト全体が巨大で、自分で書いたものではありません)

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));

jsonをdisplay_demo_data()返すと仮定すると、次のようになります。

<?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 に答える