首頁 >後端開發 >php教程 >PHP序列化數組

PHP序列化數組

王林
王林原創
2024-08-29 12:45:46871瀏覽

PHP 序列化數組函數用於序列化給定數組並轉換值的可儲存表示形式。序列化數組函數是 PHP 中的內建函數。資料串列化意味著將值轉換為位元序列,以儲存在記憶體緩衝區、檔案中或透過網路傳輸。數組是複雜的資料類型;我們無法直接看到它的內容。 Serialize() 函數將陣列轉換為簡單的字串,我們可以將其保存在文件中並透過 URL 等方式透過網路傳輸

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

序列化陣列函數的語法 –

序列化(陣列);

參數 –

  • 陣列 – 這不是一個可選參數,用於指定要序列化或轉換為可儲存表示形式的陣列或值。
  • 傳回值 –該方法的回傳值是一個字串,它是陣列的位元組流表示,可以是儲存或傳送。

PHP 序列化陣列函數的工作原理

PHP serialize() 陣列函數接受一個參數(陣列/值),這是必要參數。假設我們有一個陣列(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()數組函數範例 –

接下來,我們編寫 PHP 程式碼,透過以下範例更清楚地理解 serialize() 數組函數,其中,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() 陣列函數序列化陣列並將其儲存到檔案中的範例 –

接下來,我們透過下面的範例編寫PHP 程式碼來更清楚地理解序列化()陣列函數,其中序列化()函數用於序列化給定的陣列並將其永久儲存到文字檔案中,如下圖-

代碼:

<?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() 陣列函數序列化陣列與編碼的範例 –

接下來,我們編寫PHP程式碼來理解serialize()數組函數,其中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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:PHP array_push()下一篇:PHP array_push()