PHP에서는 Stream_Context_get_options 함수와 Copy () 함수를 사용하여 원격 자원을 다운로드 할 때 컨텍스트 설정을 볼 수 있습니다. 이러한 기능을 통해 요청 헤더, 프록시 설정, 시간 초과 설정 등을 포함한 HTTP 요청의 동작을 모니터링 할 수 있습니다.
stream_context_get_options :이 함수는 스트림 컨텍스트에서 모든 옵션을 얻는 데 사용됩니다. 스트림 컨텍스트는 스트림을 열기위한 다양한 설정 (예 : HTTP 요청 헤더, 프록시, SSL 설정 등)을 포함하는 Stream_Context_create 함수를 통해 생성 된 리소스를 나타냅니다.
복사 () :이 함수는 소스 스트림에서 대상 스트림으로 데이터를 복사하는 데 사용됩니다. 로컬 파일 시스템에 원격 파일 컨텐츠를 다운로드하는 것이 지원됩니다.
원격 파일을 다운로드하고 요청의 컨텍스트 설정을 볼 필요가 있다고 가정하십시오. Copy () 함수를 사용하여 지정된 URL에서 파일을 다운로드하고 Stream_Context_get_options 와 함께 요청의 자세한 설정을 볼 수 있습니다.
다음은 목표를 달성하기 위해이 두 기능을 결합하는 방법을 보여주는 전체 예제 코드입니다.
<?php
// 컨텍스트를 만듭니다
$options = [
'http' => [
'header' => 'User-Agent: PHP Stream' // 요청 헤더를 설정하십시오
]
];
$context = stream_context_create($options);
// 소스를 설정하십시오URL,도메인 이름을 교체하십시오 m66.net
$sourceUrl = 'http://m66.net/some/path/to/file.txt';
$destinationFile = 'local_file.txt';
// 사용 copy() 기능 다운로드 파일
copy($sourceUrl, $destinationFile, $context);
// 컨텍스트 설정을 얻고 봅니다
$options = stream_context_get_options($context);
echo '<pre>';
print_r($options);
echo '</pre>';
?>
컨텍스트 작성 : Stream_Context_create를 통해 HTTP 옵션으로 컨텍스트를 만듭니다. 여기서는 사용자 정의 사용자 에이전트 요청 헤더를 설정했습니다.
파일 다운로드 : 원격 URL ( m66.net/some/path/to/file.txt )의 내용을 Copy () 함수를 통해 Local 파일 Local_file.txt 로 다운로드하십시오. $ 컨텍스트 매개 변수는 다운로드 할 때 지정된 컨텍스트 설정을 사용하도록합니다.
컨텍스트 옵션 가져 오기 : stream_context_get_options 함수를 사용하여 컨텍스트에서 모든 옵션을 가져 와서 print_r을 통해 인쇄하여 현재 요청의 모든 구성 (예 : 요청 헤더, 프록시 설정 등)을 볼 수 있습니다.
위 코드를 실행하면 다음과 유사한 출력이 표시됩니다.
Array
(
[http] => Array
(
[header] => User-Agent: PHP Stream
)
)
다음은 사용자 에이전트 : PHP 스트림을 설정 한 HTTP 요청 헤더입니다.
stream_context_get_options 및 copy () 함수를 결합하면 원격 파일을 다운로드 할 때 컨텍스트 설정을 쉽게 모니터링하고 디버그 할 수 있습니다. 이것은 네트워크 요청을 디버깅하고 사용자 정의 요청 헤더보기, 프록시 구성 등에 매우 유용합니다.