개발자 Q&A

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

2025.03.07 00:44

stream_context_set_default 함수 사용법에 대한 질문

  • 암호화마스터 12일 전 2025.03.07 00:44
  • 5
    1
제가 현재 HTTP 요청을 보내는 코드를 작성 중인데, stream_context_set_default 함수를 사용하여 기본적인 요청 헤더를 설정하려고 합니다. 하지만 이 함수의 사용법이 조금 이해가 가지 않아서 도움을 요청합니다.

stream_context_set_default 함수의 첫 번째 인자로 전달하는 배열에 어떤 항목을 포함해야 하는지 알려주세요. 예를 들어, 'http' 항목을 사용하여 요청 헤더를 설정할 수 있는지, 아니면 다른 항목을 사용해야 하는지 궁금합니다.

또한, 이 함수를 사용하여 설정한 헤더는 어디까지 유지되고, 다른 요청에서 다시 설정해야 하는지 궁금합니다.

제가 이해한 바로는 이 함수를 사용하여 설정한 헤더는 해당 스트림 컨텍스트만 적용되는 것인 것 같아도, 확실한지 궁금합니다.

    댓글목록

    profile_image
    나우호스팅  12일 전



    stream_context_set_default 함수는 PHP의 stream_context_create 함수를 사용하여 생성된 스트림 컨텍스트에 기본적인 요청 헤더를 설정하는 함수입니다.

    stream_context_set_default 함수의 첫 번째 인자로 전달하는 배열에는 'http' 항목을 포함할 수 있습니다. 'http' 항목은 요청 헤더를 설정하는 데 사용됩니다. 예를 들어, 'http' 항목에 'header' 키를 사용하여 요청 헤더를 설정할 수 있습니다.

    예를 들어, 다음과 같이 요청 헤더를 설정할 수 있습니다.

    #hostingforum.kr
    php
    
    $context = stream_context_create(array(
    
        'http' => array(
    
            'header' => 'Accept: application/json'
    
        )
    
    ));
    
    


    이 함수를 사용하여 설정한 헤더는 해당 스트림 컨텍스트만 적용됩니다. 다른 요청에서 다시 설정해야 하는 것은 아닙니다. 하지만, stream_context_set_default 함수를 사용하여 설정한 헤더는 해당 스트림 컨텍스트가 사용되는 동안 유지됩니다.

    예를 들어, 다음 코드를 사용하여 요청을 보내면, 설정한 헤더가 유지됩니다.

    #hostingforum.kr
    php
    
    $context = stream_context_create(array(
    
        'http' => array(
    
            'header' => 'Accept: application/json'
    
        )
    
    ));
    
    $url = 'https://api.example.com/data';
    
    $data = file_get_contents($url, false, $context);
    
    


    하지만, stream_context_set_default 함수를 사용하여 설정한 헤더는 다른 스트림 컨텍스트에서 유지되지 않습니다. 다른 스트림 컨텍스트를 사용하여 요청을 보내면, 설정한 헤더가 유지되지 않습니다.

    #hostingforum.kr
    php
    
    $context1 = stream_context_create(array(
    
        'http' => array(
    
            'header' => 'Accept: application/json'
    
        )
    
    ));
    
    $context2 = stream_context_create(array(
    
        'http' => array(
    
            'header' => 'Accept: text/html'
    
        )
    
    ));
    
    $url = 'https://api.example.com/data';
    
    $data1 = file_get_contents($url, false, $context1);
    
    $data2 = file_get_contents($url, false, $context2);
    
    


    따라서, stream_context_set_default 함수를 사용하여 설정한 헤더는 해당 스트림 컨텍스트만 적용됩니다. 다른 스트림 컨텍스트에서 유지되지 않습니다.

    2025-03-07 00:45

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

검색

게시물 검색