
PHP의 unserialize_max_depth는 unserialize 메서드가 처리할 수 있는 직렬화된 데이터의 최대 깊이를 제한하는 설정입니다.
unserialize_max_depth를 설정한 후 unserialize 메서드는 직렬화된 데이터의 깊이를 확인하고, 설정한 깊이를 초과하는 데이터를 unserialize 시에 오류를 발생시킵니다.
예를 들어 unserialize_max_depth를 3으로 설정한 경우, depth가 3을 초과하는 데이터를 unserialize 시에 Fatal error: Maximum allowed depth reached 에러가 발생합니다.
위 예제의 데이터를 unserialize 시에 unserialize_max_depth를 3으로 설정한 경우, Fatal error: Maximum allowed depth reached 에러가 발생합니다.
해결 방법은 unserialize_max_depth를 설정하지 않거나, 설정한 깊이 이상의 데이터를 unserialize할 필요가 없을 때는 데이터를 재구성하여 unserialize하는 것입니다.
예를 들어 위 예제의 데이터를 재구성하여 다음과 같이 unserialize할 수 있습니다.
#hostingforum.kr
php
$serialized_data = unserialize('a:2:{i:0;s:3:"data";i:1;a:4:{i:0;s:3:"data";i:1;s:3:"data";i:2;s:3:"data";i:3;s:3:"data";}}');
위 예제의 데이터를 unserialize할 때는 Fatal error: Maximum allowed depth reached 에러가 발생하지 않습니다.
2025-05-13 18:17