2013-02-12 25 views
0

我必須從wordpress數據庫中獲取wp-options表,我必須unserialise serialise數據。我的代碼從數據庫表中獲取選項值寫在下面。要檢查序列化數組

function option_value_change() { 
    global $wpdb; 
    $myrows = $wpdb->get_results("SELECT * 
    FROM `wp_options`"); 
    foreach ($myrows as $rows){ 
     $option = get_option($rows->option_name); 
     modify_domain_name($option); 
      echo $rows-> option_value ."<br />"; 
    } 
} 

現在我想檢查序列化數據。我如何檢查數據作爲serialise數據。如果這是一個serialise數據,那麼我如何unserialise該數據。

+1

你可以使用unserialize()。檢查http://www.w3resource.com/php/function-reference/unserialize.php – ripa 2013-02-12 06:43:04

+0

你可以使用PHP函數unserialize()和serialize()這個 – 2013-02-12 06:43:51

+0

我想檢查數據(我得到的輸出)是串行化或簡單的數據在PHP腳本。像if(serialise($ rows-> option_value))或不。 – Ranjit 2013-02-12 06:48:48

回答

0

也許檢查它是否是一個對象或數組,如果沒有,然後反序列化它。

<?php 
if (!is_array($var) && !is_object($var)) { 
    $var = unserialize($var); 
} 
?> 

,或者取決於如果你的數據是正打算或者是一個對象/數組或序列化的數據,你也只是測試,如果它是一個字符串。

<?php 
if (is_string($var)) { 
    $var = unserialize($var); 
} 
?> 
0

wordpress有一個功能,稱爲maybe_unserialize(),將適合您的工作。

顧名思義,該函數只有在序列化的情況下才會反序列化一個變量。

編輯:

我不知道你當前的需要,但只是在你不知道的情況下,WordPress的有一個get_option()函數讀取值形成options表,如果需要的話之前反序列化它歸還給你。