PHP反序列化是將已經序列化的數據還原成原始數據的過程。在PHP中,常見的序列化數據格式有以下幾種:
serialize()
可以將數組或對象轉換成一個字符串,以便于存儲或傳輸。反序列化時使用unserialize()
函數將字符串還原成原始數據。示例:
$data = array(
'name' => 'John',
'age' => 30,
'city' => 'New York'
);
$serialized_data = serialize($data);
echo $serialized_data; // 輸出:a:3:{s:4:"name";s:4:"John";s:3:"age";i:30;s:4:"city";s:7:"New York";}
$unserialized_data = unserialize($serialized_data);
print_r($unserialized_data); // 輸出:Array ( [name] => John [age] => 30 [city] => New York )
json_encode()
將數組或對象轉換為JSON字符串,使用json_decode()
將JSON字符串還原成PHP數組或對象。示例:
$data = array(
'name' => 'John',
'age' => 30,
'city' => 'New York'
);
$json_data = json_encode($data);
echo $json_data; // 輸出:{"name":"John","age":30,"city":"New York"}
$unjson_data = json_decode($json_data, true); // 第二個參數設置為true時,將JSON字符串轉換為關聯數組
print_r($unjson_data); // 輸出:Array ( [name] => John [age] => 30 [city] => New York )
fputcsv()
將數組轉換為CSV格式的字符串,使用fgetcsv()
將CSV格式的字符串轉換為數組。示例:
$data = array(
'John',
30,
'New York'
);
$csv_data = fputcsv($csv_file, $data); // 將數組寫入CSV文件
echo $csv_data; // 輸出:John,30,New York(換行符和引號已自動處理)
$uncsv_data = fgetcsv($csv_file); // 從CSV文件中讀取一行數據并轉換為關聯數組
print_r($uncsv_data); // 輸出:Array ( [0] => John [1] => 30 [2] => New York )
這些序列化/反序列化格式在PHP中非常常見,可以根據實際需求選擇合適的數據格式。