개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.13 18:16

unserialize_max_depth 관련 질문

목록
  • Dart광 3일 전 2025.05.13 18:16
  • 5
    1
안녕하세요 선생님. unserialize_max_depth에 대해 질문을 드리겠습니다.
PHP의 unserialize_max_depth는 어떤 역할을 하는 것일까요?
unserialize_max_depth를 설정한 후에 unserialize 메서드의 동작이 어떻게 달라질까요?
예를 들어 unserialize_max_depth를 3으로 설정한 경우, depth가 3을 초과하는 데이터를 unserialize 시에 어떤 결과가 발생하나요?

예를 들어, depth가 3을 초과하는 데이터가 다음과 같다면 어떻게 될까요?
php

$serialized_data = unserialize('a:3:{i:0;s:3:"data";i:1;s:3:"data";i:2;s:3:"data";i:3;s:3:"data";}');


위 데이터를 unserialize 시에 unserialize_max_depth를 3으로 설정한 경우, 어떤 오류가 발생하나요?

해결 방법을 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  3일 전



    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

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 19,877건 / 13 페이지

검색

게시물 검색