Na hora de executar o programa está dando o seguinte erro: PHP Warning: stream_filter_append(): Unable to create or locate filter "alura.partes".
filtros.php
<?php
require_once 'MeuFiltro.php';
use Alura\MeuFiltro;
$arquivoCursos = fopen('lista-cursos.txt', 'r');
stream_filter_register('alura.partes', MeuFiltro::class);
stream_filter_append($arquivoCursos, 'alura.partes');
echo fread($arquivoCursos, filesize('lista-cursos.txt'));
MeuFiltro.php
<?php
namespace Alura;
use php_user_filter;
class MeuFiltro extends php_user_filter
{
public $stream;
public function onCreate(): bool
{
$this->stream = fopen('php://temp', 'w+');
return $this->stream === false;
}
public function filter($in, $out, &$consumed, $closing): int
{
$saida = '';
while ($bucket = stream_bucket_make_writeable($in)) {
$linhas = explode(PHP_EOL, $bucket->data);
foreach ($linhas as $linha) {
if (stripos($linha, 'parte') !== false) {
$saida .= $linha . PHP_EOL;
}
}
}
$bucketSaida = stream_bucket_new($this->stream, $saida);
stream_bucket_append($out, $bucketSaida);
return PSFS_PASS_ON;
}
}
Aqui está dessa forma pois quando colocado !== não retornava nada
return $this->stream === false;
Ai quando colocado igual a cima, retorna o erro informado.