En PHP 5 casi cualquier operación que involucra el leer o escribir hacia un recurso, emplea las interfazes de flujos (streams) y de filtros.

Ejemplo de filtrar información
<?php
    $filter 
'filter/read=string.strip_tags';
    
$resource 'resource=http://pear.php.net/group';
    
$data file_get_contents("php://$filter/$resource");
    
// removamos espacios, etc.:
    
$data preg_replace('/\s+/','',$data);
    
// y convirtamos las entidades
    
$data html_entity_decode($data);
    
// mostremos los primeros 20 caracteres
    
echo substr($data,0,20)."\n";
?>
Resultado
PEAR::ThePEARGroupRe

Definiendo un nuevo filtro
<?php
    
class chicha_filter extends php_user_filter {
        function 
filter($in$out, &$consumed$closing) {
            while (
$bucket stream_bucket_make_writeable($in)) {
                
// convertir entidades y remover HTML tags
                
$bucket->data strip_tags($bucket->data);
                
$bucket->data html_entity_decode($bucket->data);
                
// remover espacios y otras cosas no imprimibles
                
$bucket->data preg_replace('/(\s|\xa0)+/',' ',$bucket->data);
                
// remover las vocales 
                
$re '/[aeiouAEIOU]+/';
                
$bucket->data preg_replace($re,'',$bucket->data);
                
$consumed += $bucket->datalen;
                
stream_bucket_append($out$bucket);
            }
            return 
PSFS_PASS_ON;
        }
    }
    
    
// registrar el filtro
    
stream_filter_register('chicha''chicha_filter');
    
$filter 'filter/read=chicha';
    
$resource 'resource=http://www.google.com';
    
$data file_get_contents("php://$filter/$resource");
    
// los primeros 50 caracteres
    
echo substr($data,0,50);
?>
Resultado
Ggl Pr� L Wb "/mghp?hl=s&tb=w&=TF-8">m�gns Grps Dr