PHP 주요레퍼런스/변수관련 함수

serialize / unserialize

웹 개발자의 비상 2011. 8. 4. 01:06
string serialize(mixed value)
변수의 데이터를 저장 및 복원이 가능한 형태로 반한다.

value를 어디에나 저장이 가능하다 원래의 데이터로 복원할 수 있는 정보를 가진 문자열의 형태로 반환한다.
주로 value는 배열이 오는데 get 이나 post 로 데이터를 전송할때 변환해서 전송하는 방식이다.
변환방식은 원래 가진 값과 구조를 바이트 스트림(byte-stream)으로 변환하는 방식이다.

mixed unserialize(string str)
serialize()로 변환된 데이터를 원래의 데이터로 복원한다.

str를 원래의 데이터로 복원시키는 역할을 한다.

예제

<?
$foods = array("food" => "pizza", "beverage" => "cola", "fruit" => array("apple", "strawberry", "coconut"));

// 배열($foods)을 복원가능한 형태의 데이터로 변환하여 반환한다.
$serialized_foods = serialize($foods);
echo $serialized_foods;
// a:3:{s:4:"food";s:5:"pizza";s:8:"beverage";s:4:"cola";s:5:"fruit";a:3:{i:0;s:5:"apple";i:1;s:10:"strawberry";i:2;s:7:"coconut";}}
?>
<a href="test2.php?foods=<?=urlencode($serialized_foods)?>">serialize 함수 사용 전과 후의 결과보기</a>



예제 test2.php

<?
echo "unserialize 전 : <p>";
echo "[타입] : " . gettype($_GET["foods"]) . "<br>";
echo "[값] : " . $_GET["foods"] . "<p>";
/*
unserialize 전 :
[타입] : string
[값] : a:3:{s:4:\"food\";s:5:\"pizza\";s:8:\"beverage\";s:4:\"cola\";s:5:\"fruit\";a:3:{i:0;s:5:\"apple\";i:1;s:10:\"strawberry\";i:2;s:7:\"coconut\";}}
*/

// serialize() 함수로 변환된 데이터를 원래의 배열로 복원시킨다.
$new_foods =unserialize(stripslashes($_GET["foods"]));
//urlencde()들어온 값은 " 앞에 역슬러쉬릴 붙이므로 반듯이 stripslashes() 한다

echo "unserialize 후 : <p>";
echo "[타입] : " . gettype($new_foods) . "<br>";
echo "[값] : ";
print_r($new_foods);
/*
unserialize 후 :

[타입] : array
[값] :
Array
(
[food] => pizza
[beverage] => cola
[fruit] => Array
(
[0] => apple
[1] => strawberry
[2] => coconut
)
)
*/

echo $new_foods[food]; //pizza
?>

728x90

'PHP 주요레퍼런스 > 변수관련 함수' 카테고리의 다른 글

var_export  (0) 2011.08.04
var_dump  (0) 2011.08.03
print_r  (0) 2011.08.03
isset / unset / empty  (0) 2011.08.03
strval  (0) 2011.08.03