Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过数据集解析_Php_Arrays_Wordpress_Parsing - Fatal编程技术网

Php 通过数据集解析

Php 通过数据集解析,php,arrays,wordpress,parsing,Php,Arrays,Wordpress,Parsing,使用Wordpress函数wp\u load\u alloptions()我得到一个包含所有站点选项数据的大数组。我选择了它的一部分,我需要从中全局获取数据 $all_options = wp_load_alloptions(); $my_options = array(); foreach( $all_options as $name => $value ) { if(stristr($name, 'options')) $my_options[$name] = $value; }

使用Wordpress函数
wp\u load\u alloptions()
我得到一个包含所有站点选项数据的大数组。我选择了它的一部分,我需要从中全局获取数据

$all_options = wp_load_alloptions();
$my_options = array();
foreach( $all_options as $name => $value ) {
   if(stristr($name, 'options')) $my_options[$name] = $value;
}

echo '<pre>';
   print_r($my_options['sl_options_options']);
echo '</pre>';
有没有一种方法可以解析这个数据集来分解每个单独的部分。组合在一起的单个零件示例:

preg_split('/;|,/', 's:15:"popup_form_text";s:0:"";s:14:"popup_form_URL";s:124:"url";s:15:"popup_form_open";s:2:"14";s:16:"popup_form_close";s:2:"23";s:15:"evergage_toggle";s:2:"On";s:12:"optim_toggle";s:2:"On";s:13:"soasta_toggle";s:3:"Off";}');

你想要这样的东西吗

array(15) {
  [0] =>
  string(22) "s:15:"popup_form_text""
  [1] =>
  string(6) "s:0:"""
  [2] =>
  string(21) "s:14:"popup_form_URL""
  [3] =>
  string(11) "s:124:"url""
  [4] =>
  string(22) "s:15:"popup_form_open""
  [5] =>
  string(8) "s:2:"14""
  [6] =>
  string(23) "s:16:"popup_form_close""
  [7] =>
  string(8) "s:2:"23""
  [8] =>
  string(22) "s:15:"evergage_toggle""
  [9] =>
  string(8) "s:2:"On""
  [10] =>
  string(19) "s:12:"optim_toggle""
  [11] =>
  string(8) "s:2:"On""
  [12] =>
  string(20) "s:13:"soasta_toggle""
  [13] =>
  string(9) "s:3:"Off""
  [14] =>
  string(1) "}"
}
输出:

s:15:"popup_form_text";s:0:"";s:14:"popup_form_URL";s:124:"url";s:15:"popup_form_open";s:2:"14";s:16:"popup_form_close";s:2:"23";s:15:"evergage_toggle";s:2:"On";s:12:"optim_toggle";s:2:"On";s:13:"soasta_toggle";s:3:"Off";}

您可以轻松地对其进行优化。

使用
unserialize
我可以按照自己的意愿将数据打印出来

序列化数组:

$unserialized_array = unserialize(s:15:"popup_form_text";s:0:"";s:14:"popup_form_URL";s:124:"url";s:15:"popup_form_open";s:2:"14";s:16:"popup_form_close";s:2:"23";s:15:"evergage_toggle";s:2:"On";s:12:"optim_toggle";s:2:"On";s:13:"soasta_toggle";s:3:"Off";});
使用
取消序列化

print_r(unserialize($unserialized_array));
显示新阵列:

Array(
   [popup_form_toggle] => On
   [popup_form_postids] => 51819, 36057, 36061, 36044, 44375, 36073, 48713, 17, 34612, 15908, 51054, 41102, 894
   [popup_form_text] => 
   [popup_form_URL] => https://home-c8.incontact.com/inContact/ChatClient/ChatClientPatron.aspx?poc=5ca78194-54ab-4833-8685-934a9d0305cc&bu=4594385
   [popup_form_open] => 14
   [popup_form_close] => 23
   [evergage_toggle] => On
   [optim_toggle] => On
   [soasta_toggle] => Off
)
阵列现在显示为:


这是一个序列化数组。它应该以
a:some_number:{…
开始,你应该能够将它反序列化为任何你想要的提取。这让我走上了正确的道路!我实际上使用了反序列化,并按照我想要的方式将其打印出来。将在下面显示结果!当你有多余的字符串时,preg_split非常有用!
print_r(unserialize($unserialized_array));
Array(
   [popup_form_toggle] => On
   [popup_form_postids] => 51819, 36057, 36061, 36044, 44375, 36073, 48713, 17, 34612, 15908, 51054, 41102, 894
   [popup_form_text] => 
   [popup_form_URL] => https://home-c8.incontact.com/inContact/ChatClient/ChatClientPatron.aspx?poc=5ca78194-54ab-4833-8685-934a9d0305cc&bu=4594385
   [popup_form_open] => 14
   [popup_form_close] => 23
   [evergage_toggle] => On
   [optim_toggle] => On
   [soasta_toggle] => Off
)