
php_user_filter::filter 함수는 stream filter의 필터링 함수로, 데이터를 처리하기 전에 호출됩니다. 이 함수는 데이터를 읽거나 쓰기 전에 호출되며, 데이터를 필터링하거나 변형할 수 있습니다.
이 함수는 다음 매개변수를 받습니다.
- $in: 입력 스트림
- $out: 출력 스트림
- &$consumed: 필터링된 데이터의 크기
- &$eof: 스트림의 끝 여부
이 함수는 데이터를 필터링하거나 변형한 후, $out에 데이터를 출력하고, $consumed에 필터링된 데이터의 크기를 반환합니다.
예를 들어, 다음 예제는 php_user_filter::filter 함수를 사용하여 데이터를 대문자로 변환하는 stream filter를 만드는 방법을 보여줍니다.
#hostingforum.kr
php
class 대문자StreamFilter extends php_user_filter {
public function filter($in, $out, &$consumed, &$eof) {
while ($buf = fread($in, 8192)) {
$대문자Buf = strtoupper($buf);
fwrite($out, $대문자Buf);
$consumed += strlen($대문자Buf);
}
return PHP_FILTER_SKIP;
}
}
$stream = fopen('php://temp', 'r+');
$대문자StreamFilter = new 대문자StreamFilter();
stream_filter_append($stream, $대문자StreamFilter);
fwrite($stream, 'hello world');
rewind($stream);
echo stream_get_contents($stream);
이 예제에서는 php_user_filter::filter 함수를 사용하여 데이터를 대문자로 변환하는 stream filter를 만듭니다. 이 stream filter는 데이터를 읽을 때마다 데이터를 대문자로 변환하고, 변환된 데이터를 출력합니다.
2025-07-03 20:53