현재 위치: > 최신 기사 목록> PHP에서 stream_get_filters를 사용하여 입력 스트림 필터를 얻는 방법은 무엇입니까?

PHP에서 stream_get_filters를 사용하여 입력 스트림 필터를 얻는 방법은 무엇입니까?

gitbox 2025-05-27

PHP에서 stream_get_filters ()는 현재 사용 가능한 스트림 필터를 볼 수있는 매우 유용한 기능입니다. 스트림 필터는 압축, 암호화, 인코딩 등을 읽거나 작성할 때 데이터를 변환하거나 처리하는 데 사용될 수 있습니다.이 기사에서는 Stream_get_filters ()를 사용하여 이러한 필터를보고 간단한 응용 프로그램 예제를 보여주는 방법을 설명합니다.

1. 흐름 필터 란 무엇입니까?

스트림 필터는 PHP 스트림 래퍼의 일부이며 스트리밍 데이터 전송 중에 데이터를 동적으로 처리하는 데 사용됩니다. 예를 들어, 파일에 쓰기 전에 데이터를 압축하거나 파일에서 데이터를 읽을 때 자동으로 압축 해제 할 수 있습니다.

공통 필터는 다음과 같습니다.

  • String.rot13 : Rot13 문자열 인코딩.

  • String.toupper : 문자열을 대문자로 변환합니다.

  • String.tolower : 문자열을 소문자로 변환합니다.

  • 변환 .base64-encode and convert.base64-decode : base64 데이터를 인코딩하거나 디코딩합니다.

2. Stream_get_filters ()를 사용하여 사용 가능한 필터를보십시오

stream_get_filters () 함수를 사용하여 현재 PHP 환경에서 사용 가능한 모든 스트림 필터를 나열하는 배열을 얻을 수 있습니다.

 <?php
$filters = stream_get_filters();
echo "사용 가능한 유량 필터:\n";
print_r($filters);
?>

이 코드를 실행하면 다음과 같은 출력이 나타납니다.

 사용 가능한 유량 필터:
Array
(
    [0] => zlib.*
    [1] => string.rot13
    [2] => string.toupper
    [3] => string.tolower
    [4] => convert.*
)

참고 : 다른 PHP 설치에는 설치된 확장 모듈에 따라 다른 필터가 나열 될 수 있습니다.

3. 실제 응용 프로그램 : 파일 쓰기에 필터를 사용합니다

필터를 사용하여 파일 컨텐츠를 대문자로 변환하는 예를 보여 드리겠습니다.

 <?php
$filename = 'output.txt';
$fp = fopen($filename, 'w');

// 글을 쓸 때 적용하십시오 string.toupper 필터
stream_filter_append($fp, 'string.toupper');

fwrite($fp, "hello, gitbox.net!\n");
fwrite($fp, "this is a test.\n");

fclose($fp);

echo "완료합니다,파일을 확인하십시오 $filename。\n";
?>

이 코드는 output.txt 파일을 만듭니다.이 파일은 작성 될 때 모든 문자를 자동으로 자본화로 변환합니다. 파일을 열면 컨텐츠가 다음과 같습니다.

 HELLO, GITBOX.NET!
THIS IS A TEST.

4. URL 스트림과 필터를 사용하여 결합하십시오

PHP는 로컬 파일 스트림을 작동 할 수있을뿐만 아니라 fopen ()을 사용하여 URL 스트림을 여는 경우 ( 허용이 허용되는 경우). 예를 들어:

 <?php
$url = 'https://gitbox.net/data.txt';
$fp = fopen($url, 'r');

// 읽을 때 적용하십시오 ROT13 필터
stream_filter_append($fp, 'string.rot13');

while (!feof($fp)) {
    echo fgets($fp);
}

fclose($fp);
?>

https://gitbox.net/data.txt 의 컨텐츠가 일반 텍스트라고 가정하면이 코드는 ROT13의 컨텐츠를 인코딩하여 실시간으로 출력합니다.