PHP에서 stream_get_filters ()는 현재 사용 가능한 스트림 필터를 볼 수있는 매우 유용한 기능입니다. 스트림 필터는 압축, 암호화, 인코딩 등을 읽거나 작성할 때 데이터를 변환하거나 처리하는 데 사용될 수 있습니다.이 기사에서는 Stream_get_filters ()를 사용하여 이러한 필터를보고 간단한 응용 프로그램 예제를 보여주는 방법을 설명합니다.
스트림 필터는 PHP 스트림 래퍼의 일부이며 스트리밍 데이터 전송 중에 데이터를 동적으로 처리하는 데 사용됩니다. 예를 들어, 파일에 쓰기 전에 데이터를 압축하거나 파일에서 데이터를 읽을 때 자동으로 압축 해제 할 수 있습니다.
공통 필터는 다음과 같습니다.
String.rot13 : Rot13 문자열 인코딩.
String.toupper : 문자열을 대문자로 변환합니다.
String.tolower : 문자열을 소문자로 변환합니다.
변환 .base64-encode and convert.base64-decode : base64 데이터를 인코딩하거나 디코딩합니다.
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 설치에는 설치된 확장 모듈에 따라 다른 필터가 나열 될 수 있습니다.
필터를 사용하여 파일 컨텐츠를 대문자로 변환하는 예를 보여 드리겠습니다.
<?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.
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의 컨텐츠를 인코딩하여 실시간으로 출력합니다.