php関数serialize()とunserialize()

2854 ワード

php関数:シーケンス化関数-serialize()と逆シーケンス化関数-unserialize()の説明とケース.serialize()は、valueを表すバイトストリームを含み、どこにでも格納できる文字列を返します.これは、PHPの値を格納または転送するのに役立ち、そのタイプと構造を失わない.
シーケンス化された文字列をPHPの値に戻すにはunserialize()を使用します.serialize()はresource以外の任意のタイプを処理できます.serialize()は、自身への参照を含む配列であってもよい.あなたがserialize()にいる配列/オブジェクトの参照も格納されます.
シーケンス化されたオブジェクトの場合、PHPはシーケンス動作の前にそのオブジェクトのメンバー関数__を呼び出そうとします.sleep().これにより、オブジェクトがシーケンス化される前にクリーンアップ操作を行うことができます.同様に、unserialize()を使用してオブジェクトを復元すると、__が呼び出されます.wakeup()メンバー関数.
serialize()とunserialize()のphpマニュアルでの解釈は、serialize-Generates a storable representation of a value serialize-unserialize-unserialize-unserialize-Creates a PHP value from a stored representation unserialize-格納された表示からPHPの値serizeを作成し、翻訳すると「連載、連続させる」と呼ばれます.通常は「シーケンス化」と呼ばれていますが、特にunserializeと組み合わせて使用すると便利です.
役に立つのは、データベースにデータを格納したり、ファイルに記録したりするときです.もちろん、このデータは複雑でなければなりません(複雑でもserializeも必要ありません.少なくとも1つの配列だと思います).そして、データベースの非「インデックスまたはプライマリ・キー」です.もちろん、このデータベースフィールドはシステム内で検索プログラムとは関係ありません.もちろんserialize後のデータは、具体的なデータが暗号化されたり変更されたりしていないため、検索できます.
<?php
//     
$array = array();
$array['key'] = 'website';
$array['value']='www.isoji.org';
$a = serialize($array);
echo $a;
unset($array);
$a = unserialize($a);
print_r($a);

//     
class dog {
var $name;
var $age;
var $owner;
function dog($in_name="unnamed",$in_age="0",$in_owner="unknown") {
$this->name = $in_name;
$this->age = $in_age;
$this->owner = $in_owner;
}
function getage() {
return ($this->age * 365);
}

function getowner() {
return ($this->owner);
}

function getname() {
return ($this->name);
}
}
//      
$ourfirstdog = new dog("Rover",12,"Lisa and Graham");
// serialize                    
$dogdisc = serialize($ourfirstdog);
print $dogdisc; //$ourfirstdog           O:3:"dog":3:{s:4:"name";s:5:"Rover";s:3:"age";i:12;s:5:"owner";s:15:"Lisa and Graham";}
print '<BR>';
/*
-----------------------------------------------------------------------------------------
           $dogdisc          session,cookie,   ,php  
-----------------------------------------------------------------------------------------
*/
//         
unset($ourfirstdog);
/*      */
/*
-----------------------------------------------------------------------------------------
        $dogdisc             session,cookie,   ,php  
-----------------------------------------------------------------------------------------
*/

//       unserialize()           
$pet = unserialize($dogdisc); //    $pet        $ourfirstdog    
//         
$old = $pet->getage();
$name = $pet->getname();
//                ,                   
print "Our first dog is called $name and is $old days old<br>";
print '<BR>';
?>