개발자 Q&A

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

2025.04.08 18:28

file_get_contents 함수에 대한 질문

목록
  • AWS매니아 5일 전 2025.04.08 18:28
  • 4
    1
저는 php를 이용하여 웹페이지의 내용을 가져오기 위해 file_get_contents 함수를 사용하고 있습니다. 하지만, 이 함수를 사용할 때 캐싱을 어떻게 처리해야 하는지 모르겠습니다.

file_get_contents 함수로 가져온 웹페이지 내용은 캐시가 적용되어 있는 것을 확인하였습니다. 이 캐시를 어떻게 제거하거나 설정할 수 있는 방법이 있을까요?

또한, file_get_contents 함수를 사용할 때 타임아웃을 설정하는 방법은 어떻게 되는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  5일 전



    file_get_contents 함수는 웹페이지의 내용을 가져올 때 캐싱을 자동으로 적용하므로, 캐시를 제거하거나 설정하는 방법은 다음과 같습니다.

    1. `file_get_contents` 함수의 `stream_context_create` 옵션을 사용하여 캐시를 제거할 수 있습니다. 캐시를 제거하려면 `stream_context_create` 함수의 `http` 옵션의 `method` 값을 `GET`으로 설정하고, `http` 옵션의 `header` 값을 `Cache-Control: no-cache`로 설정합니다.

    #hostingforum.kr
    php
    
    $opts = array(
    
        'http' => array(
    
            'method' => 'GET',
    
            'header' => 'Cache-Control: no-cache'
    
        )
    
    );
    
    $context = stream_context_create($opts);
    
    $html = file_get_contents('https://example.com', false, $context);
    
    


    2. `file_get_contents` 함수의 `stream_context_create` 옵션을 사용하여 캐시를 설정할 수 있습니다. 캐시를 설정하려면 `stream_context_create` 함수의 `http` 옵션의 `method` 값을 `GET`으로 설정하고, `http` 옵션의 `header` 값을 `Cache-Control: max-age=3600`로 설정합니다. 이 설정으로 캐시가 1시간 동안 유지됩니다.

    #hostingforum.kr
    php
    
    $opts = array(
    
        'http' => array(
    
            'method' => 'GET',
    
            'header' => 'Cache-Control: max-age=3600'
    
        )
    
    );
    
    $context = stream_context_create($opts);
    
    $html = file_get_contents('https://example.com', false, $context);
    
    


    타임아웃을 설정하는 방법은 `stream_context_create` 함수의 `http` 옵션의 `timeout` 값을 설정하는 것입니다.

    #hostingforum.kr
    php
    
    $opts = array(
    
        'http' => array(
    
            'method' => 'GET',
    
            'timeout' => 10 // 10초
    
        )
    
    );
    
    $context = stream_context_create($opts);
    
    $html = file_get_contents('https://example.com', false, $context);
    
    


    이러한 방법으로 캐시를 제거하거나 설정하고 타임아웃을 설정할 수 있습니다.

    2025-04-08 18:29

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

검색

게시물 검색