현재 위치: > 최신 기사 목록> 스트림 정보를 분석하려면 stream_get_meta_data ()를 사용하십시오

스트림 정보를 분석하려면 stream_get_meta_data ()를 사용하십시오

M66 2025-05-28

PHP에서 Stream은 파일, 데이터 등의 입력 및 출력을 처리하는 메커니즘입니다. 스트림을 사용하여 파일, 네트워크 요청 및 메모리 내 데이터를 처리 할 수 ​​있습니다. 스트림의 동작을 깊이 분석하려면 일반적으로 스트림의 세부 사항을 얻어야합니다. 이 기사는 Stream_Context_get_optionsStream_get_meta_data를 사용하여 스트림의 자세한 정보를 분석하는 방법에 중점을 둡니다.

1. 흐름 컨텍스트를 이해하십시오

PHP에서 스트림 컨텍스트는 스트림 작동의 구성 정보를 포함하는 데이터 구조입니다. stream_context_create () 함수를 통해 만들 수 있으며 스트림을 열 때 일부 옵션을 구성하는 데 사용됩니다 (예 : HTTP 요청 헤더, 프록시 설정 등).

2. stream_context_get_options 함수

stream_context_get_options () 함수는 생성 된 스트림 컨텍스트에서 모든 옵션을 얻는 데 사용됩니다. 스트림을 만들 때 전달되는 특정 매개 변수를 볼 수 있으므로 스트림 구성을 디버깅하는 데 특히 유용합니다.

 <?php
// 스트림 컨텍스트를 만듭니다,설정 HTTP 헤더를 요청하십시오
$options = [
    'http' => [
        'header' => 'User-Agent: PHP/7.4'
    ]
];
$context = stream_context_create($options);

// 컨텍스트를 얻고 표시하는 옵션
$options = stream_context_get_options($context);
print_r($options);
?>

출력 결과는 다음과 같습니다.

 Array
(
    [http] => Array
        (
            [header] => User-Agent: PHP/7.4
        )
)

3. stream_get_meta_data 함수

stream_get_meta_data () 함수는 스트림의 메타 데이터를 얻는 데 사용됩니다. 스트림 상태, 오류 정보, 쓰기 가능 여부 등을 포함하여 스트림 상태 정보가 포함 된 배열을 반환합니다.

 <?php
// 파일 스트림을 엽니 다
$file = fopen("example.txt", "r");

// 스트림의 메타 데이터를 얻으십시오
$metaData = stream_get_meta_data($file);
print_r($metaData);

// 파일 스트림을 닫습니다
fclose($file);
?>

출력은 다음과 같습니다.

 Array
(
    [timed_out] => 
    [blocked] => 
    [eof] => 
    [unread_bytes] => 0
    [stream_type] => STDIO
    [wrapper_type] => plainfile
    [wrapper_data] => 
    [stream_type] => STDIO
)

4. 스트림 _context_get_optionsstream_get_meta_data를 함께 사용하십시오

스트림의 세부 사항을 분석하려면 일반적으로 stream_context_get_optionsstream_get_meta_data를 함께 사용해야합니다. 예를 들어, HTTP 요청을 할 때 스트림의 메타 데이터와 관련 구성 정보를 볼 수 있습니다.

다음은 네트워크 요청을 통해 웹 컨텐츠를 얻고 컨텍스트 옵션 및 메타 데이터와 결합 된 스트림 분석의 예입니다.

 <?php
// 구성HTTP요청 옵션
$options = [
    'http' => [
        'method' => 'GET',
        'header' => 'User-Agent: PHP/7.4'
    ]
];
$context = stream_context_create($options);

// 스트림을 열고 요청을 보내십시오
$url = "http://m66.net/example";  // 도메인 이름을 대체하십시오 m66.net
$stream = fopen($url, 'r', false, $context);

// 스트림의 메타 데이터를 얻으십시오
$metaData = stream_get_meta_data($stream);
print_r($metaData);

// 컨텍스트를 얻는 옵션
$contextOptions = stream_context_get_options($context);
print_r($contextOptions);

// 스트림을 닫으십시오
fclose($stream);
?>

출력은 다음과 같습니다.

 스트림의 메타 데이터:
Array
(
    [timed_out] => 
    [blocked] => 
    [eof] => 1
    [unread_bytes] => 0
    [stream_type] => http
    [wrapper_type] => http
    [wrapper_data] => HTTP/1.1 200 OK
    [stream_type] => http
)

컨텍스트 옵션:
Array
(
    [http] => Array
        (
            [method] => GET
            [header] => User-Agent: PHP/7.4
        )
)

5. 요약

Stream_Context_get_optionsstream_get_meta_data 함수를 결합하여 개발자는 세부 구성 정보와 스트림의 메타 데이터를 쉽게 볼 수 있습니다. 이 메소드는 네트워크 요청을 할 때 요청 구성 또는 디버깅 흐름을 진단하는 데 도움이 될 수 있습니다.

이 두 가지 방법은 HTTP 스트림에만 국한되지 않지만 다른 유형의 스트림 (예 : 파일 스트림, 메모리 스트림 등)에도 사용할 수 있습니다. 이러한 도구를 사용하면 흐름의 동작을 더 잘 분석하고 제어 할 수 있습니다.