0

長年の読者 初めての質問者...

問題ではなく、Drupal を使用して一連の変数を作成しようとしています。変数を設定するためのすべての場所があり、将来のオペレーターが編集するのは簡単です。

次に、これらの値を php で取得する必要があります。サイトにはまだありますが、ある程度 Drupal の外部にあります。繰り返しますが、私は PHP に少し慣れていませんが、必要なものは手に入れることができます。ただし、drupal はすべてのデータを 1 つの「セル」に格納します (申し訳ありませんが、目的を検索しましたが、適切な結果を得るには語彙が不足していると思います!)。保存方法の例を次に示します。

a:3:{i:0;a:3:{s:5:"値";s:2:"38";s:5:"ラベル";s:11:"M2 あたりのコスト";s: 6:"重量";s:1:"0";}i:1;a:3:{s:5:"値";s:1:"7";s:5:"ラベル";s: 13:"アーチ トップ コスト";s:6:"重量";s:1:"1";}i:2;a:3:{s:5:"値";s:1:"5"; s:5:"ラベル";s:13:"フラット トップ コスト";s:6:"重量";s:1:"2";}}

したがって、上記のようにコンテンツ全体を喜んで返すことができますが、特定の参照に絞り込む方法は少しもありません。特定の括弧のセットの間にデータが含まれていることがわかります。したがって、1つの参照は次のとおりです。

{s:5:"value";s:2:"38";s:5:"label";s:11:"Cost Per M2";s:6:"weight";s:1:"0";}

私が本当に必要としているのは、この例の「38」です。これは、2 番目のシステムが最終的なコストを計算するために使用するコストであるためです。

これが理にかなっていると思いますか?

4

2 に答える 2

1

値はシリアライズされます ( http://php.net/manual/en/function.serialize.phpを参照)。あなたがしたいことは、シリアル化を解除することです ( http://www.php.net/manual/en/function.unserialize.phpを参照)。したがって、次のようになります。

$deserializedValues = unserialize($values). 

その後、次のようにして変数を呼び出すことができます。

$deserializedValues['value'] (if an array)

$deserializedValues->value (if an object)
于 2013-05-21T13:47:57.367 に答える
0

Drupal は JSON を返します。これを処理する最もクリーンな方法は、PHP の json_decode() 関数を使用することです: http://php.net/manual/en/function.json-decode.php

于 2013-05-21T13:46:24.583 に答える