2013-02-12 2 views
0

워드 프레스 데이터베이스에서 wp-options 테이블을 가져와 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 데이터가 있다면 그 데이터를 어떻게 직렬화 할 수 있습니까?

+1

unserialize()를 사용할 수 있습니다. http://www.w3resource.com/php/function-reference/unserialize.php를 확인하십시오 – ripa

+0

당신은 PHP 함수 unserialize() 및 serialize()를 사용할 수 있습니다. –

+0

(출력으로 얻은) 데이터를 확인하고 싶습니다. serialise 또는 PHP 스크립트의 간단한 데이터. if (serialise ($ rows-> option_value))와 같다. – Ranjit

답변

0

개체 또는 배열인지 확인하고, 배열이 아닌 경우 확인한 다음 직렬화를 해제하십시오. 이 문자열 인 경우

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

또는 데이터가 긍정적으로 객체/배열 또는 직렬화 된 데이터로 중 하나를 것입니다 경우에 따라, 당신은 또한 단지 테스트 할 수있다.

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

Wordpress에는 사용자 작업에 적합한 maybe_unserialize()이라는 기능이 있습니다.

이름에서 알 수 있듯이 함수는 직렬화 된 경우에만 변수의 직렬화를 해제합니다.

편집 :

나는 당신의 현재 요구를 모르겠지만, 당신이 모르는 경우에, 워드 프레스는 값이 options 테이블을 형성하기 전에 필요한 경우 문자열을 비 일렬 화 읽는 get_option() 기능을 가지고있다 그것을 당신에게 돌려줍니다.