PHP 프로그래밍에서 Serialize 기능은 매우 유용한 도구입니다. 특히 배열 또는 객체와 같은 복잡한 데이터 구조를 파일에 저장하거나 네트워크를 통해이 데이터를 전송 해야하는 경우 데이터를 문자열로 변환 할 수 있습니다. 이 기사는 직렬화 기능의 역할을 소개하고이를 통해 데이터 직렬화 및 사막화를 구현하는 방법, 특히 URL을 통해 페이지를 통해 데이터를 전달하는 방법을 설명합니다.
직렬화 기능은 PHP 데이터 구조 (예 : 배열 또는 객체)를 HTTP 요청에 대해 쉽게 저장하거나 전달할 수있는 문자열로 변환합니다. 이 데이터 구조를 원래 형식으로 복원해야 할 때 비 제외 기능을 사용할 수 있습니다.
문법:
string serialize ( mixed $value )
매개 변수 : $ 값 은 직렬화하려는 값이며 배열, 객체 등을 포함하여 모든 유형의 데이터 일 수 있습니다.
반환 값 : 직렬화 된 데이터를 나타내는 문자열을 반환합니다.
예:
$array = array('name' => 'Alice', 'age' => 25);
$serializedData = serialize($array);
echo $serializedData;
출력 문자열은 다음과 같습니다.
a:2:{s:4:"name";s:5:"Alice";s:3:"age";i:25;}
사제화는 직렬화 된 문자열을 원래 PHP 데이터 구조로 복원하는 것입니다. 비 제외 기능을 사용 하여이 기능을 구현할 수 있습니다.
문법:
mixed unserialize ( string $data )
매개 변수 : $ 데이터는 직렬화 된 문자열입니다.
반환 값 : 원래 데이터, 일반적으로 배열 또는 객체를 반환합니다.
예:
$serializedData = 'a:2:{s:4:"name";s:5:"Alice";s:3:"age";i:25;}';
$array = unserialize($serializedData);
print_r($array);
출력은 다음과 같습니다.
Array
(
[name] => Alice
[age] => 25
)
URL을 통해 한 페이지에서 다른 페이지에서 다른 페이지로 데이터를 전달하려면 Serialize 함수를 사용하여 배열 또는 객체를 문자열로 변환 한 다음 URL을 통과 할 수 있습니다. 수신기는 비 제외 기능을 사용하여 데이터를 복원 할 수 있습니다.
다른 페이지로 전달하려는 PHP 배열이 있다고 가정합니다.
// 배열을 정의하십시오
$data = array('name' => 'Alice', 'age' => 25);
// 어레이를 일련 화합니다
$serializedData = serialize($data);
// URL 인코딩 된 직렬화 된 데이터
$encodedData = urlencode($serializedData);
// 데이터를 통과하십시오 URL 다른 페이지로 보내십시오
header('Location: receive.php?data=' . $encodedData);
exit;
이 예에서는 URLencode를 사용하여 직렬화 된 데이터를 인코딩하여 URL 매개 변수로 안전하게 전달할 수 있습니다.
수신자 페이지 leceper.php 에서는 $ _get을 통해 URL에서 매개 변수를 가져오고 비 제외 기능을 사용하여 데이터를 복원 할 수 있습니다.
// 얻다 URL 매개 변수
if (isset($_GET['data'])) {
// 데이터를 디코딩하고 사형화합니다
$serializedData = urldecode($_GET['data']);
$data = unserialize($serializedData);
// 출력 데이터
echo 'Name: ' . $data['name'] . '<br>';
echo 'Age: ' . $data['age'] . '<br>';
} else {
echo 'No data received.';
}
URL 길이 한계 : URL 길이는 상한 (일반적으로 2048 자)을 가지므로 전달 된 데이터가 큰 경우 (예 : 많은 양의 배열 또는 객체 데이터를 포함하는) 제한을 초과 할 수 있습니다. 사후 요청을 사용하거나 세션에 데이터 저장을 고려하십시오.
보안 : 비조리를 사용할 때, 특히 실시화 된 데이터가 신뢰할 수없는 소스에서 나오는 경우, 보안 취약점 (예 : 객체 주입 공격)으로 이어질 수 있습니다. PHP 7 이상은 보안을 향상시키기 위해 실시화 된 클래스를 제한 할 수있는 allend_classes 매개 변수를 소개합니다.
Serialize 및 Bonserialize 함수를 통해 PHP는 데이터를 직렬화하고 실질화하는 간단하고 효율적인 방법을 제공합니다. 이러한 기능으로 페이지간에 복잡한 데이터 구조를 쉽게 전달할 수 있습니다. 특히 페이지에서 배열이나 객체를 통과 해야하는 경우 Serialize는 매우 유용한 도구입니다. URL의 길이 제한 및 보안 문제에주의하십시오. 다른 페이지간에 데이터를 전달하는 것이 매우 편리합니다.