2017-07-06 3 views
0

Wordpress関数wp_load_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>'; 

これが返されます。

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";} 

は、私は、個々のパーツを抜け出すために、このデータセットを解析できる方法はあります。一緒に行く個々の部品の例:

s:12:"optim_toggle";s:2:"On"; 
+0

これはシリアル化された配列です。それは 'a:some_number:{...'で始まる必要があります。 – colburton

答えて

0

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";} 

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

このようなものが必要ですか? :

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) "}" 
} 

あなたは簡単にそれを最適化することができます。

+0

これは正しい経路に私を置く!私は実際にはシリアル化を使用して、私が望むように印刷するようにしました。以下の結果が表示されます! –

+0

preg_splitはあなたが冗長な文字列を持っているときに本当に便利です! – Baptiste

関連する問題