PHP에서 Serialize () 함수는 데이터를 저장 또는 전송할 수있는 형식으로 변환하는 데 사용됩니다. Serialize () 함수는 다차원 배열 또는 객체와 같은 복잡한 데이터 구조에 매우 유용합니다. 파일 또는 데이터베이스의 손쉬운 저장소 또는 URL 또는 API를 통해 전송을 위해 배열 또는 객체를 문자열로 변환합니다.
이 기사에서는 Serialize () 함수를 사용하여 다차원 배열의 직렬화를 처리하고 직렬화 및 사형화하는 방법을 보여줍니다.
Serialize ()는 PHP 값 (배열 및 객체 포함)을 저장 또는 전송할 수있는 문자열 표현으로 변환하기 위해 PHP의 내장 함수입니다. 문자열은 파일, 데이터베이스에 저장하거나 네트워크를 통해 전송 될 수 있습니다.
string serialize ( mixed $value )
값 : 직렬화 할 값 (모든 유형의 PHP 변수 일 수 있음).
반환 값 : 직렬화 된 값을 나타내는 문자열을 반환합니다.
$array = array("apple", "banana", "cherry");
$serialized = serialize($array);
echo $serialized;
다차원 배열을 처리 할 때 Serialize () 함수는 전체 배열을 모든 수준에서 데이터를 포함하는 문자열로 변환 할 수 있습니다. 이것은 복잡한 데이터 구조를 저장하는 데 매우 유용합니다.
여러 차원의 배열이 있다고 가정합니다.
$multiArray = array(
"fruits" => array("apple", "banana", "cherry"),
"vegetables" => array("carrot", "broccoli", "spinach"),
"numbers" => array(1, 2, 3, 4)
);
$serializedMultiArray = serialize($multiArray);
echo $serializedMultiArray;
출력은 다음과 유사한 모든 배열 요소를 포함하는 긴 스트링입니다.
a:3:{s:6:"fruits";a:3:{s:5:"apple";s:6:"banana";s:6:"cherry";}s:9:"vegetables";a:3:{s:7:"carrot";s:9:"broccoli";s:8:"spinach";}s:7:"numbers";a:4:{i:1;i:2;i:3;i:4;}}
이 문자열은 파일에 저장되거나 다른 응용 프로그램으로 전달 될 수 있으며 사형화 될 때 원래 다차원 배열 구조로 복원됩니다.
사제화는 직렬화 된 문자열을 PHP 변수로 복원하는 과정입니다. unsserialize () 함수를 사용하여 수행 할 수 있습니다.
mixed unserialize ( string $data [, array $options = [] ] )
데이터 : 실질화하는 문자열.
옵션 : 디코딩을위한 옵션 (선택 사항).
이미 직렬화 된 다차원 배열 문자열이 있다고 가정합니다.
$serializedData = 'a:3:{s:6:"fruits";a:3:{s:5:"apple";s:6:"banana";s:6:"cherry";}s:9:"vegetables";a:3:{s:7:"carrot";s:9:"broccoli";s:8:"spinach";}s:7:"numbers";a:4:{i:1;i:2;i:3;i:4;}}';
$unserializedData = unserialize($serializedData);
print_r($unserializedData);
산출:
Array
(
[fruits] => Array
(
[0] => apple
[1] => banana
[2] => cherry
)
[vegetables] => Array
(
[0] => carrot
[1] => broccoli
[2] => spinach
)
[numbers] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
)
사막화 후 원래 URL 구조로 직렬화되고 복원되어야하는 URL 배열이 있다고 가정합니다. 데모를 위해 gitbox.net을 샘플 도메인 이름으로 사용합니다.
$urlArray = array(
"google" => "https://www.gitbox.net/search?q=php",
"yahoo" => "https://www.gitbox.net/search?q=python",
"bing" => "https://www.gitbox.net/search?q=javascript"
);
$serializedUrlArray = serialize($urlArray);
echo $serializedUrlArray;
출력 직렬화 된 문자열에는 대체 된 URL이 포함됩니다.
a:3:{s:6:"google";s:40:"https://www.gitbox.net/search?q=php";s:5:"yahoo";s:40:"https://www.gitbox.net/search?q=python";s:4:"bing";s:42:"https://www.gitbox.net/search?q=javascript";}
사막화가 필요한 경우 URL은 원래 URL 양식으로 복원되며 여전히 gitbox.net을 포함합니다.
PHP의 Serialize () 함수는 복잡한 배열 또는 객체를 저장 또는 전송할 수있는 문자열로 변환하는 데 사용됩니다.
다차원 배열의 경우 Serialize () 함수는 모든 레벨에서 데이터를 처리하고 사용 가능한 문자열로 변환 할 수 있습니다.
unsserialize () 함수를 통해 직렬화 된 문자열은 PHP의 원래 데이터 구조로 복원 될 수 있습니다.
직렬화 프로세스 중에 URL이 관련된 경우 gitbox.net 과 같은 지정된 도메인 이름으로 배열에서 직접 교체 할 수 있습니다.
이러한 기술을 사용하면 PHP의 복잡한 데이터 직렬화, 특히 다차원 배열의 저장 및 전송을 쉽게 처리 할 수 있습니다.