> 백엔드 개발 > PHP 튜토리얼 > PHP에서 데이터를 직렬화 및 역직렬화하는 방법

PHP에서 데이터를 직렬화 및 역직렬화하는 방법

墨辰丷
풀어 주다: 2023-03-30 09:16:01
원래의
1352명이 탐색했습니다.

이 글은 주로 PHP에서 데이터를 직렬화하고 역직렬화하는 방법을 소개합니다. 관심 있는 친구들이 참고하면 도움이 될 것입니다.

php는 실제로 데이터를 직렬화 및 역직렬화하기 위해 serialize unserialize라는 두 가지 함수를 사용합니다.
serialize 배열을 정렬된 문자열로 형식 지정
unserialize 배열을 배열로 복원
예:

$user=array('Moe','Larry','Curly'); 
$user=serialize($stooges); 
echo &#39;<pre class="brush:php;toolbar:false">&#39;; 
print_r($user); 
echo &#39;<br />&#39;; 
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_encodebase64_decode 두 가지 기능을 사용할 수 있습니다.
예:

$user=array(&#39;Moe&#39;,&#39;Larry&#39;,&#39;Curly&#39;); 
$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 템플릿 엔진 Smarty 구성 파일의 사용법 및 예에 대한 자세한 설명

mssql json 데이터를 읽는 PHP의 중국어 중국어 깨진 문자에 대한 솔루션 정보

In PHP 템플릿 엔진 Smarty 사용법 및 보유변수 예시 분석

위 내용은 PHP에서 데이터를 직렬화 및 역직렬화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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