PHP에서 Serialize 기능은 배열 또는 객체와 같은 PHP 데이터 구조를 저장 가능한 문자열 형식으로 변환하는 도구입니다. 직렬화를 통해 PHP는 객체 데이터를 파일 또는 데이터베이스에 쉽게 저장하여 객체를 지속적으로 저장할 수 있습니다. 이 기사에서는 직렬화 기능을 사용 하여이 목표를 달성하는 방법을 자세히 설명합니다.
Serialize 함수는 PHP 데이터 구조 (객체, 배열 등 포함)를 문자열로 변환합니다. 이 문자열은 나중에 비 제외 기능을 통해 원래 데이터 구조로 복원 될 수 있습니다. 직렬화 된 데이터는 장기 저장 및 시스템 간 전송을 위해 파일, 데이터베이스 또는 원격 서버 등으로 전송 될 수 있습니다.
Serialize 함수를 사용하여 객체의 지속적인 저장을 구현하는 방법을 확인하기 위해 간단한 PHP 객체를 예로 들어 봅시다.
먼저 PHP 클래스 객체를 만듭니다.
<?php
class Person {
public $name;
public $age;
public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
public function display() {
echo "Name: {$this->name}, Age: {$this->age}\n";
}
}
?>
다음으로, 직렬화 함수를 통해 개인 클래스의 인스턴스 객체를 문자열로 직렬화 할 수 있습니다. 그런 다음 지속성을 위해 파일에 저장합니다.
<?php
// 만들다 Person 물체
$person = new Person("Alice", 30);
// 사용 serialize 将물체转为字符串
$serializedPerson = serialize($person);
// 직렬화 된 문자열을 파일에 저장하십시오
file_put_contents('person.txt', $serializedPerson);
echo "Object serialized and saved to person.txt\n";
?>
이 객체를 다시로드 해야하는 경우, 비 제외 기능을 사용하여 파일에 저장된 직렬화 된 문자열을 원래 오브젝트로 복원 할 수 있습니다.
<?php
// 파일에서 직렬화 된 문자열을 읽으십시오
$serializedPerson = file_get_contents('person.txt');
// 사용 unserialize 将字符串反序列化为물체
$person = unserialize($serializedPerson);
// 输出恢复的물체
$person->display(); // Output: Name: Alice, Age: 30
?>
로컬 파일에 저장하는 것 외에도 직렬화 된 데이터를 원격 서버 또는 데이터베이스에 저장하거나 URL을 통해 전송할 수도 있습니다. 직렬화 된 객체 데이터를 원격 서버로 보내려고한다고 가정 해 봅시다. 다음은 Curl을 사용하는 예입니다.
<?php
// 데이터 직렬화
$serializedData = serialize($person);
// 发送데이터 직렬화到원격 서버
$url = "http://gitbox.net/store_serialized_data"; // 원격 서버 URL
$data = array("data" => $serializedData);
// 초기화 cURL 세션
$ch = curl_init($url);
// 설정 cURL 옵션
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
// 구현하다 cURL 묻다
$response = curl_exec($ch);
// 오류를 확인하십시오
if($response === false) {
echo "cURL Error: " . curl_error($ch);
} else {
echo "Data successfully sent to server: $response";
}
// 폐쇄 cURL 세션
curl_close($ch);
?>
위의 예에서는 CURL을 통해 직렬화 된 객체 데이터를 지정된 URL로 보냅니다 ( gitbox.net 으로 교체). 원격 서버 측에서는 데이터베이스에 저장하거나 파일에 저장하는 등이 직렬화 된 데이터를 수신하고 처리 할 수 있습니다.
Serialize 기능은 PHP에서 매우 유용한 도구로서 객체 및 어레이와 같은 복잡한 데이터 구조를 문자열로 변환하여 지속적으로 저장할 수 있습니다. 직렬화 된 데이터를 파일, 데이터베이스에 저장하여 네트워크를 통해 다른 장소로 전송할 수도 있습니다. 이 기사의 예제를 통해 객체 데이터를 쉽게 직렬화하고 지속적인 스토리지를 구현할 수 있으며, 이는 시스템 또는 장기 스토리지 전체를 공유하기에 편리합니다.