Código da classe MeuFiltro
class MeuFiltro extends php_user_filter
{
public $stream;
public function onCreate()
{
$this->stream = fopen('php://temp', 'w+');
return $this->stream !== false;
}
public function filter($in, $out, &$consumed, $closing)
{
$saida = '';
while($bucket = stream_bucket_make_writeable($in)){
$linhas = explode('\n', $bucket->data);
foreach ($linhas as $linha){
if(stripos($linha, 'parte') !== false){
$saida .= $linha . "\n";
} // fim do if
} // fim do foreach
} // fim do loop while
$bucketSaida = stream_bucket_new($this->stream, $saida);
stream_bucket_make_writeable($out, $bucketSaida);
return PSFS_PASS_ON;
} // fim da função filter
}
Código do arquivo
require_once 'MeuFiltro.php';
$arquivoCursos = fopen('lista-cursos.txt', 'r');
stream_filter_register('consulta.partes', MeuFiltro::class);
stream_filter_append($arquivoCursos, 'consulta.partes');
echo fread($arquivoCursos, filesize('lista-cursos.txt'));
fclose($arquivoCursos);
Saída do terminal