> 백엔드 개발 > PHP 튜토리얼 > PHP 직렬화 및 역직렬화 방법에 대한 자세한 설명_php 기술

PHP 직렬화 및 역직렬화 방법에 대한 자세한 설명_php 기술

WBOY
풀어 주다: 2016-05-16 20:05:55
원래의
1740명이 탐색했습니다.

일부 구성 파일은 유사한 변수 이름과 값을 형식으로 저장하는 경우가 많습니다. 실제로 이러한 데이터베이스를 사용해야 하는 경우 직렬화 프로세스입니다. 🎜> 프로세스가 수행됩니다. 🎜>역직렬화 프로세스는 이 문자열을 원래 데이터 구조로 복원하는 것입니다. php가 데이터를 직렬화하고 역직렬화하는 방법에 대해 이야기해 보겠습니다. PHP는 실제로 데이터를 직렬화 및 역직렬화하기 위해
직렬화직렬화 해제라는 두 가지 함수를 사용합니다.
직렬화 배열을 순서가 지정된 문자열로 형식 지정
직렬화 해제 배열을 배열로 직렬화 해제
예:

$user=array('Moe','Larry','Curly'); 
$user=serialize($stooges); 
echo '<pre class="brush:php;toolbar:false">'; 
print_r($user); 
echo '<br />'; 
print_r(unserialize($user)); 
로그인 후 복사
결과:


a:3:{i:0;s:3:"Moe";i:1;s:5:"Larry";i:2;s:5:"Curly";}
Array ( [0] => Moe [1] => Larry [2] => Curly )
로그인 후 복사
배열 값에 큰따옴표, 작은따옴표, 콜론, 중국어 등의 문자가 포함되어 있으면 역직렬화한 후 문자가 깨지거나 형식이 깨질 수 있습니다.

잘못된 코드 문제를 해결하려면

base64_encode base64_decode 두 가지 기능을 사용할 수 있습니다.
예:

$user=array('Moe','Larry','Curly'); 
$user=base64_encode(serialize($user)); 
$user=unserialize(base64_decode($user)); 
로그인 후 복사
이렇게 하면 코드가 깨지는 문제가 발생하지 않지만

base64 인코딩을 사용하면 저장된 문자열의 길이가 늘어납니다.

위에서 우리는

직렬화 및 역직렬화 기능 을 다음과 같이 요약할 수 있습니다.

function my_serialize($obj_array){ 
  return base64_encode(gzcompress(serialize($obj_array))); 
} 
//反序列化 
function my_unserialize($str){ 
  return unserialize(gzuncompress(base64_decode($str))); 
} 
로그인 후 복사
위 내용은

PHP가 데이터를 직렬화 및 역직렬화하는 방법과 역직렬화를 겪은 후 문자 왜곡이나 서식이 중단되는 이유와 해결 방법을 소개하는 것이 모든 사람의 연구에 도움이 되기를 바랍니다.

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿