PHP 配列をシリアル化する

王林
王林オリジナル
2024-08-29 12:45:46871ブラウズ

PHP の配列シリアル化関数は、指定された配列をシリアル化し、値の保存可能な表現を変換するために使用されます。配列のシリアル化関数は、PHP の組み込み関数です。データのシリアル化手段は、値をビットのシーケンスに変換して、メモリ バッファやファイルに保存したり、ネットワーク経由で転送したりすることを意味します。配列は複雑なデータ型です。その内容を直接見ることはできません。 Serialize() 関数は、配列を単純な文字列に変換します。これをファイルに保存し、URL などでネットワーク経由で転送できます。

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

配列シリアル化関数の構文 –

シリアル化(配列);

パラメータ –

  • array – これは、シリアル化または保存可能な表現に変換される配列または値を指定するオプションのパラメーターではありません。
  • 戻り値 – このメソッドの戻り値は文字列で、これは格納または送信できる配列のバイト ストリーム表現です。

PHP 配列配列関数のシリアル化の動作

PHPのserialize()配列関数は、必須パラメータである1つのパラメータを( array/value )として受け入れます。ファイルに保存したい配列 (1、2、3、4) が​​あるとします。そのため、最初に関数 Serialize(array) を呼び出して配列をシリアル化する必要があります。この関数は配列をシリアル化し、文字列変換を返します。配列は「a:4:{i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;}」として、さらに格納できます。ファイルを送信するか、ネットワーク経由で送信します。

PHP Serialize() 配列関数の例

以下に挙げる例は次のとおりです

例 #1

複素配列をシリアル化するための Serialize() 配列関数の例 –

次に、次の例で、serialize() 配列関数をより明確に理解するために PHP コードを作成します。以下のように、serialize() 関数は指定された配列をシリアル化するために使用されます –

コード:

<?php
// create complex array
$array = array( 'text', 200, 400, 'apple', array( 2, 'two', 3, 'three' ) );
// printing complex array
print("The complex array is : ");
print_r( $array );
print( "<br>");
// serialize the complex array
$array_string = serialize( $array );
// printing the serialize array
print( "The serialize array is : " );
print( $array_string );
print( "<br>");
// unserializing the serialized array
$unser_array = unserialize( $array_string );
// printing the unserialized array
print_r( $unser_array );
?>

出力:

PHP 配列をシリアル化する

上記のコードと同様に、複雑な配列は、serialize() 関数を使用して作成およびシリアル化され、配列のバイト ストリームまたは文字列変換が返されます。さらに、上記の出力でわかるように、シリアル化された配列は unserialize() 関数を使用して元の配列と同じ配列に変換されます。

例 #2

配列をシリアル化してファイルに保存する Serialize() 配列関数の例 –

次に、次の例では、serialize() 配列関数をより明確に理解するために PHP コードを作成します。以下のように、serialize() 関数は、指定された配列をシリアル化し、テキスト ファイルに永続的に保存するために使用されます。

コード:

<?php
// create an array
$array = array( 'apple', 'banana', 'mango', 'orange', 'cherry' );
// printing complex array
print("The array is : ");
print_r( $array );
print( "<br>");
// serialize the complex array
$array_string = serialize( $array );
// printing the serialize array
print( "The serialize array is : " );
print( $array_string );
print( "<br>");
// save the array string to a Ex text file
file_put_contents('Ex.txt', $array_string);
// access back the data from the save text file.
$file_array = file_get_contents('Ex.txt');
// printing the file array
print( "The serialize file array is : " );
print( $file_array );
print( "<br>");
// unserializing the serialized array
$unser_array = unserialize( $file_array );
// printing the unserialized array
print( "The unserialize file array is : " );
print_r( $unser_array );
print( "<br>");
?>

出力:

PHP 配列をシリアル化する

Ex.txt ファイルを確認すると、内容は –

です。

PHP 配列をシリアル化する

上記のコードと同様に、複雑な配列が作成され、シリアル化されます。シリアル化された配列はテキスト ファイルに永続的に保存されます。さらに、保存されたシリアル化された配列が読み戻され、unserialize() 関数を使用して配列に変換されます。これは、上記の出力でわかるように、元の配列と同じです。

例 #3

配列をシリアル化してエンコードする Serialize() 配列関数の例 –

次に、serialize() 配列関数を理解するための PHP コードを作成します。ここで、serialize() 関数は、以下のように、指定された配列をシリアル化し、URL にエンコードして複数のページに送信します。 >

コード:

<?php
// create an array
$array = array (
1 => "one",
2 => "two",
3 => "three"
);
// printing an array
print("The array is : ");
print_r( $array );
print( "<br>");
// serialize the complex array
$array_string = serialize( $array );
// printing the serialize array
print( "The serialize array is : " );
print( $array_string );
print( "<br>");
// encode the array string
$enc_array = urlencode( $array_string );
print( "The encode serialize array is : " );
print( $enc_array );
print( "<br>");
// deencode the encoded array string
$dec_array = urldecode( $enc_array );
// printing the file array
print( "The deencode serialized array is : " );
print( $dec_array );
print( "<br>");
?>

出力:

PHP 配列をシリアル化する

上記のコードと同様に、複雑な配列が作成され、シリアル化されます。シリアル化された配列は、urlencode() 関数を使用してエンコードされます。さらに、エンコードされたシリアル化された配列は、urldecode() 関数を使用して配列にデコードされます。これは、上記の出力でわかるように、元の配列と同じです。

結論

PHP Zip ファイルは、一連のファイルやディレクトリを圧縮形式で保存するために使用され、後で解凍することもできます。

以上がPHP 配列をシリアル化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHP array_push()次の記事:PHP array_push()