PHP 3분 핵심 요약집
3.08. 직렬화와 역직렬화
연서은
2024. 4. 15. 11:32
직렬화는 객체나 배열 등 복합형 타입의 데이터를 저장하고 복호화할 수 있도록 문자열 혹은 바이트 배열 형태로 변환하는 것을 말한다.
<?php
$data = array(1, 2, 3, 4);
$serial_data = serialize($data);
file_put_contents("data.txt", $serial_data);
$load_data = file_get_contents('data.txt');
$unserial_data = unserialize($load_data);
var_dump($load_data);
echo "<br />";
var_dump($unserial_data);
위 코드를 serial.php 파일에 저장하고 브라우저에서 결과를 확인한다.
string(38) "a:4:{i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;}"
array(4) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) }
PHP에서 직렬화된 데이터는 문자열 타입이다. 저장된 데이터를 그대로 읽은 변수 $load_data를 보면 알 수 있다.
string(38) "a:4:{i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;}"
php 에서 직렬화는 serialize 함수를 사용한다.
$serial_data = serialize($data);
역직렬화는 unserialize 함수를 사용한다.
$unserial_data = unserialize($load_data);
데이터를 직렬화해서 데이터베이스에 넣거나 파일에 저장하거나 하는 용도로 많이 사용된다.