unserialize
(PHP 3>= 3.0.5, PHP 4 , PHP 5)
unserialize --
저장 표현에서 PHP 값을 작성합니다.
설명
mixed
unserialize ( string str)
unserialize()은 하나의 일렬화된
변수(serialize() 참고)를 받아서 PHP 값으로 변환합니다.
변환한 값을 반환합니다. integer, float,
string, array, object형이 될 수
있습니다. unserialize할 수 없는 문자열일 경우에는, FALSE를 반환합니다.
unserialize_callback_func 지시어:
unserialize중에 정의되지 않은 클래스를 작성해야 할 경우에 콜백 함수를
호출할 수 있습니다. (완전하지 않은 object
"__PHP_Incomplete_Class"를 얻는것을 방지할 수 있습니다) php.ini나
ini_set()이나 .htaccess를 이용하여
'unserialize_callback_func'를 정의하십시오. 정의되지 않은 클래스를
작성해야 할 때 마다, 호출됩니다. 이 기능을 비활성화 하려면 간단히 이
설정을 비워두십시오. unserialize_callback_func 지시어는 PHP 4.2.0부터
사용할 수 있습니다.
변수가 객체로 unserialize되고, 성공적으로 객체로 재구성되면, PHP는
자동적으로 __wakeup() 멤버 함수를 호출합니다.
(존재한다면)
예 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에서 얻을 수 있습니다. } ?>
|
|
참고:
PHP 3에서, 메쏘드는 일렬화된 객체를 unserialize할 때 복구되지 않습니다.
PHP 4는 이 제한을 제거했고, 속성과 메쏘드를 둘 다 복구합니다. 자세한
정보는 클래스와 객체의 객체 일렬화하기 섹션을
참고하십시오.
예 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().