
serialize() 함수는 데이터를 문자열 형태로 변환하여 저장할 수 있는 함수입니다. 그러나 unserialize() 함수가 데이터를 올바르게 해석하지 못할 경우 오류가 발생할 수 있습니다.
해당 오류는 serialize() 함수에 의해 생성된 문자열이 unserialize() 함수가 처리할 수 없는 형식일 때 발생합니다. 예를 들어, serialize() 함수는 객체를 문자열로 변환할 때, 객체의 메서드나 속성을 포함한 모든 정보를 문자열로 변환합니다. 그러나 unserialize() 함수는 이러한 정보를 올바르게 해석하지 못할 수 있습니다.
해결 방법은 serialize() 함수를 사용할 때, serialize() 함수의 두 번째 인자로 serialize() 함수의 옵션을 지정하는 것입니다. 예를 들어, serialize() 함수의 옵션을 `SERIALIZE_NULL`로 지정하면 NULL 값을 문자열로 변환하지 않습니다.
#hostingforum.kr
php
public function add($key, $value) {
$this->data[$key] = serialize($value, SERIALIZE_NULL);
}
또한, unserialize() 함수를 사용할 때, unserialize() 함수의 두 번째 인자로 unserialize() 함수의 옵션을 지정하는 것도 좋습니다. 예를 들어, unserialize() 함수의 옵션을 `SERIALIZE_UNSAFE_OBJECT`로 지정하면 unserialize() 함수가 객체를 올바르게 해석할 수 있습니다.
#hostingforum.kr
php
public function get($key) {
return unserialize($this->data[$key], SERIALIZE_UNSAFE_OBJECT);
}
예를 들어, serialize() 함수를 사용하여 데이터를 저장한 후, unserialize() 함수를 사용하여 데이터를 불러올 수 있는 방법은 다음과 같습니다.
#hostingforum.kr
php
$data = serialize($value, SERIALIZE_NULL);
file_put_contents('data.txt', $data);
$data = file_get_contents('data.txt');
$value = unserialize($data, SERIALIZE_UNSAFE_OBJECT);
또한, serialize() 함수를 사용하여 데이터를 저장하고 불러올 수 있는 방법은 다음과 같습니다.
#hostingforum.kr
php
class QuickHashStringIntHash {
private $data;
public function __construct() {
$this->data = [];
}
public function add($key, $value) {
$this->data[$key] = serialize($value, SERIALIZE_NULL);
}
public function get($key) {
return unserialize($this->data[$key], SERIALIZE_UNSAFE_OBJECT);
}
public function save() {
$data = serialize($this->data);
file_put_contents('data.txt', $data);
}
public function load() {
$data = file_get_contents('data.txt');
$this->data = unserialize($data);
}
}
이 코드에서는 serialize() 함수를 사용하여 데이터를 저장하고 불러올 수 있습니다. serialize() 함수의 옵션을 지정하여 unserialize() 함수가 올바르게 해석할 수 있도록 합니다.
2025-04-13 09:41