
PHP의 `php_user_filter::filter` 메서드는 스트림 필터를 사용하여 데이터를 처리할 때 호출되는 메서드입니다. 이 메서드는 스트림 필터의 필터링 로직을 구현하는 데 사용됩니다.
이 메서드는 다음 파라미터를 받습니다.
- `$in` : 입력 스트림
- `$out` : 출력 스트림
- `$consumed` : 소비된 데이터 크기
- `$max_consumed` : 최대 소비 가능한 데이터 크기
이 메서드는 다음 반환값을 반환합니다.
- `$consumed` : 소비된 데이터 크기
스트림 필터를 사용하여 데이터를 처리하는 예제는 다음과 같습니다.
#hostingforum.kr
php
class MyFilter extends php_user_filter {
public function filter($in, $out, &$consumed, $max_consumed) {
while ($buf = fread($in, 1024)) {
$buf = strtoupper($buf); // 데이터를 대문자로 변환
fwrite($out, $buf);
$consumed += strlen($buf);
}
return PHP_FILTER_STOP;
}
}
$fp = fopen('php://stdin', 'r');
$fp = stream_filter_append($fp, 'my_filter', STREAM_FILTER_READ);
while ($line = fgets($fp)) {
echo $line;
}
이 예제는 사용자 정의 스트림 필터 `MyFilter`를 정의하고, 스트림 필터를 사용하여 입력 스트림에서 데이터를 읽고, 대문자로 변환한 후 출력 스트림에 쓰는 예제입니다.
2025-08-01 07:49