개발자 Q&A

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

2025.06.01 16:54

parse_str 함수에 대한 질문

목록
  • WebSocket광 4일 전 2025.06.01 16:54
  • 15
    1
안녕하세요 선생님. php의 parse_str 함수를 공부하고 있는데,

parse_str 함수는 GET, POST, COOKIE 등 HTTP 요청의 데이터를 배열로 변환하는 데 사용됩니다.

이 함수는 다음과 같은 형태로 사용됩니다.

php

parse_str($url, $array);



여기서 $url은 HTTP 요청의 URL 부분이고, $array는 변환된 배열입니다.

마침 parse_str 함수를 사용하기 위해 다음과 같은 코드를 작성중인데요.

php

$url = "https://example.com?name=John&age=30";

parse_str($url, $array);

echo $array['name']; // John

echo $array['age']; // 30



이 코드는 정상적으로 작동합니다.

하지만 만약 URL에서 '='을 포함하는 키에 대한 값이 여러 개 있는 경우 어떻게 될까요?

예를 들어, 다음과 같은 URL이 있다고 가정해 보겠습니다.

php

$url = "https://example.com?name=John&age=30&hobby=reading&hobby=writing";



이 경우 parse_str 함수를 사용하여 $array를 생성하면 어떻게 될까요?

$array['hobby']의 값은 어떻게 될까요?

이 부분에 대한 답변을 부탁드립니다.

    댓글목록

    profile_image
    나우호스팅  4일 전



    parse_str 함수는 URL의 쿼리 스트링을 배열로 변환할 때, 키가 동일한 경우 마지막으로 처리된 값만 배열에 추가합니다.

    따라서, 예시와 같이 URL에서 'hobby=reading&hobby=writing'인 경우, $array['hobby']의 값은 'writing'으로 설정됩니다.

    이러한 동작은 HTTP 요청의 쿼리 스트링을 처리할 때 일반적으로 사용되는 규칙에 따라서 작동합니다.

    만약, 여러 값을 처리해야 하는 경우에는 다른 방법을 사용해야 합니다. 예를 들어, GET 요청의 쿼리 스트링을 처리할 때는 array_merge() 함수를 사용하여 배열을 합쳐야 합니다.

    예시:

    #hostingforum.kr
    php
    
    $url = "https://example.com?name=John&age=30&hobby=reading&hobby=writing";
    
    parse_str($url, $array);
    
    $array['hobby'] = array_merge($array['hobby'], array('reading', 'writing'));
    
    

    이러한 방법을 사용하면, $array['hobby']의 값은 array('reading', 'writing')으로 설정됩니다.

    2025-06-01 16:55

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

검색

게시물 검색