복잡한 데이터 유형을 문자열로 압축
serialize() 변수와 해당 값을 텍스트 형식으로 인코딩
unserialize() 원래 변수 복원
<span style="color: #800080">$stooges = <span style="color: #0000ff"><a href="http://www.php.cn/wiki/1041.html" target="_blank">array</a>('Moe','Larry','Curly');<br/><span style="color: #800080">$<a href="http://www.php.cn/wiki/165.html" target="_blank">new</a> = <span style="color: #008080">serialize(<span style="color: #800080">$stooges);<br/><span style="color: #008080"><a href="http://www.php.cn/wiki/1362.html" target="_blank">print</a>_r(<span style="color: #800080">$new);<span style="color: #0000ff"><a href="http://www.php.cn/wiki/1343.html" target="_blank">echo</a> "<br />";<br/><span style="color: #008080">print_r(<span style="color: #008080">unserialize(<span style="color: #800080">$new));</span></span></span></span></span></span></span></span></span></span></span>
결과: a:3:{i:0;s:3:"Moe";i:1;s:5:"Larry";i:2;s:5:"Curly";}
배열( [0] => Moe [1] => Larry [2] => Curly )
이러한 직렬화된 데이터가 URL에 배치되면 호출해야 합니다.
<span style="color: #800080">$shopping = <span style="color: #0000ff">array('Poppy seed bagel' => 2,'Plain Bagel' =>1,'Lox' =>4);<br/><span style="color: #0000ff">echo '<a href="next.php?cart='.<span style="color: #008080">urlencode(<span style="color: #008080">serialize(<span style="color: #800080">$shopping)).'">next</a>';</span></span></span></span></span></span>
margic_quotes_gpc 및 Magic_quotes_runtime 구성 항목의 설정은 unserialize()에 전달되는 데이터에 영향을 미칩니다.
magic_quotes_gpc가 활성화된 경우 URL, POST 변수 및 쿠키에 전달된 데이터는 역직렬화 전에 스트립슬래시()로 처리되어야 합니다.
<span style="color: #800080">$new_cart = <span style="color: #008080">unserialize(<span style="color: #008080">stripslashes(<span style="color: #800080">$cart)); <span style="color: #008000">//<span style="color: #008000">如果magic_quotes_gpc开启<span style="color: #008000"><br/><span style="color: #800080">$new_cart = <span style="color: #008080">unserialize(<span style="color: #800080">$cart);</span></span></span></span></span></span></span></span></span></span>
magic_quotes_runtime이 활성화된 경우 직렬화된 데이터는 다음으로 처리되어야 합니다. 파일에 쓰기 전에 lashes()를 추가하고 파일을 읽기 전에 slashes()를 제거합니다.
//当对一个对象进行反序列化操作时,PHP会自动地调用其wakeUp()方法。这样就使得对象能够重新建立起序列化时未能保留的各种状态。例如:数据库连接等。
위 내용은 PHP의 직렬화 및 역직렬화에 대한 심층적인 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!