从PHP对象解析信息

时间:2016-05-13 23:39:16

标签: php wordpress

我需要一些帮助来尝试解析表单中的信息显示。现在,当使用基本数组时,地址返回为“3 Columbus PlaceApt1”,其中地址1和地址2连接在一起。我创建了一个使用print_r

返回此对象的对象
a:2:{
    s:18:"_gravity_form_lead";a:16:{
        s:4:"19.1";s:28:"Stamford PD Extra Duty Order";s:4:"19.2";s:5:"$0.00";s:4:"19.3";s:0:"";s:3:"9.1";s:16:"3 Columbus Place";s:3:"9.2";s:5:"Apt 1";s:3:"9.3";s:0:"";s:3:"9.4";s:11:"Connecticut";s:3:"9.5";s:0:"";s:3:"9.6";s:13:"United States";i:22;s:14:"(203) 123-4567";i:12;s:10:"2016-05-24";i:13;s:8:"12:35 am";i:20;s:8:"8|584.64";i:11;s:9:"MH6151684";i:21;s:1:"3";i:18;s:7:"1753.92";}s:18:"_gravity_form_data";a:15:{s:2:"id";s:1:"6";s:13:"display_title";b:0;s:19:"display_description";b:0;s:25:"disable_woocommerce_price";s:3:"yes";s:12:"price_before";s:0:"";s:11:"price_after";s:0:"";s:20:"disable_calculations";s:2:"no";s:22:"disable_label_subtotal";s:3:"yes";s:21:"disable_label_options";s:3:"yes";s:19:"disable_label_total";s:2:"no";s:14:"disable_anchor";s:2:"no";s:14:"label_subtotal";s:8:"Subtotal";s:13:"label_options";s:7:"Options";s:11:"label_total";s:5:"Total";s:8:"use_ajax";s:2:"no";
    }
}

我想解析我们的s:16和s:5,但我不知道该怎么做。任何帮助表示赞赏

修改

反序列化字符串:

array ( '_gravity_form_lead' => array ( '19.1' => 'Stamford PD Extra Duty Order', '19.2' => '$0.00', '19.3' => '', '9.1' => '3 Columbus Place', '9.2' => 'Apt 1', '9.3' => '', '9.4' => 'Connecticut', '9.5' => '', '9.6' => 'United States', 22 => '(203) 123-4567', 12 => '2016-05-24', 13 => '12:35 am', 20 => '8|584.64', 11 => 'MH6151684', 21 => '3', 18 => '1753.92', ), '_gravity_form_data' => array ( 'id' => '6', 'display_title' => false, 'display_description' => false, 'disable_woocommerce_price' => 'yes', 'price_before' => '', 'price_after' => '', 'disable_calculations' => 'no', 'disable_label_subtotal' => 'yes', 'disable_label_options' => 'yes', 'disable_label_total' => 'no', 'disable_anchor' => 'no', 'label_subtotal' => 'Subtotal', 'label_options' => 'Options', 'label_total' => 'Total', 'use_ajax' => 'no', ), )

2 个答案:

答案 0 :(得分:4)

你正在努力做到这一点!

这是WordPress。你不需要记录,反序列化,尝试猜测结构等。

相反,请使用get_optionget_postmeta功能获取所需信息。

此外,WooCommerce和Gravity Forms的文档将解释如何获取您正在寻找的信息 - 但这有点XY Problem - 您&#39 ; ve问如何解析一个数组(序列化) - 但是你真的想要做其他事情。你应该问这个问题,而不是这个问题的细节。

如果必须手动执行此操作,请不要使用unserialize。而是使用WordPress函数maybe_unserialize

最后,Gravity Forms存储记录的方式是一个主要的麻烦。将其存储方式映射到"表单字段"非常困难。您在表单中设置的内容 - 除非您使用Gravity Forms API,这会使其更好一些。

答案 1 :(得分:1)

您必须反序列化数组才能获得所需的数据。像这样:

$formData = unserialize($var);

// This is Address1
echo $formData['_gravity_form_lead']['9.1'];

echo "<br/>";

// This is Address2
echo $formData['_gravity_form_lead']['9.2'];