Forum und email

unserialize

(PHP 4, PHP 5)

unserialize — 저장 표현에서 PHP 값을 작성합니다.

설명

mixed unserialize ( string $str )

unserialize()은 하나의 일렬화된 변수(serialize() 참고)를 받아서 PHP 값으로 변환합니다. 변환한 값을 반환합니다. integer, float, string, array, object형이 될 수 있습니다. unserialize할 수 없는 문자열일 경우에는, FALSE를 반환합니다.

Note: unserialize_callback_func 지시어 unserialize중에 정의되지 않은 클래스를 작성해야 할 경우에 콜백 함수를 호출할 수 있습니다. (완전하지 않은 object "__PHP_Incomplete_Class"를 얻는것을 방지할 수 있습니다) php.iniini_set()이나 .htaccess를 이용하여 'unserialize_callback_func'를 정의하십시오. 정의되지 않은 클래스를 작성해야 할 때 마다, 호출됩니다. 이 기능을 비활성화 하려면 간단히 이 설정을 비워두십시오. unserialize_callback_func 지시어는 PHP 4.2.0부터 사용할 수 있습니다.

변수가 객체로 unserialize되고, 성공적으로 객체로 재구성되면, PHP는 자동적으로 __wakeup() 멤버 함수를 호출합니다. (존재한다면)

Example#1 unserialize_callback_func 예제

<?php
$serialized_object
='O:1:"a":1:{s:5:"value";s:3:"100";}';

// unserialize_callback_func 지시어는 PHP 4.2.0부터 사용할 수 있습니다.
ini_set('unserialize_callback_func''mycallback'); // 콜백 함수를 설정

function mycallback($classname)
{
    
// 단지 클래스를 정의하는 파일을 포함합니다.
    // 어떤 클래스 정의가 필요한가는 $classname에서 얻을 수 있습니다.
}
?>

Note: PHP 3에서, 메쏘드는 일렬화된 객체를 unserialize할 때 복구되지 않습니다. PHP 4는 이 제한을 제거했고, 속성과 메쏘드를 둘 다 복구합니다. 자세한 정보는 클래스와 객체객체 일렬화하기 섹션을 참고하십시오.

Example#2 unserialize() 예제

<?php
// 여기서는, 데이터베이스에서 가져온 문자열로부터 $session_data
// 배열에 세션 데이터를 읽어들일 때 unserialize()를 사용합니다.
// 이 예제는 serialize()에 설명된 예제를 보완합니다.

$conn odbc_connect("webdb""php""chicken");
$stmt odbc_prepare($conn"SELECT data FROM sessions WHERE id = ?");
$sqldata = array ($PHP_AUTH_USER);
if (!
odbc_execute($stmt, &$sqldata) || !odbc_fetch_into($stmt, &$tmp)) {
    
// excute나 fetch가 실패하면, 빈 배열로 초기화합니다.
    
$session_data = array();
} else {
    
// 여기서는 일렬화된 데이터를 $tmp[0]에 가집니다.
    
$session_data unserialize($tmp[0]);
    if (!
is_array($session_data)) {
        
// 무언가 잘못되면, 빈 배열로 초기화합니다.
        
$session_data = array();
    }
}
?>

참고: serialize().