0

长期读者第一次提问...

我正在尝试使用 Drupal 创建一组变量,而不是问题,设置它们的一切都已准备就绪,并且便于未来的操作员进行编辑。

然后我需要在 php 中获取这些值,仍然在站点上,但在某种程度上在 Drupal 之外。同样,虽然我在 PHP 上有点轻量级,但我可以得到我需要的东西。然而,drupal 将数据全部存储在一个“单元格”中(抱歉,我已经搜索了我想要的内容,但我认为我的词汇量不足,无法获得正确的结果!)。这是一个如何存储它的示例:

a:3:{i:0;a:3:{s:5:"value";s:2:"38";s:5:"label";s:11:"Cost Per M2";s: 6:"重量";s:1:"0";}i:1;a:3:{s:5:"值";s:1:"7";s:5:"标签";s: 13:"Arch Top Cost";s:6:"weight";s:1:"1";}i:2;a:3:{s:5:"value";s:1:"5"; s:5:"label";s:13:"Flat Top Cost";s:6:"weight";s:1:"2";}}

所以我可以很高兴地返回上面的全部内容,但我一点也不知道如何将它细化为特定的参考。我可以计算出数据包含在某些括号组之间,因此,一个参考是:

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

我真正需要的是示例中的“38”,因为这是第二个系统使用数字来计算最终成本的成本。

我希望这是有道理的?

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 回答