自定义filter

    class md5_filter extends php_user_filter{
        public function filter($in,$out,&$consumed,$closing){
            while($bucket = stream_bucket_make_writeable($in)){
                $bucket->data = md5($bucket->data);
                $consumed += $bucket->datalen;
                stream_bucket_append($out,$bucket);
            }
            //允许其他管道使用
            return PSFS_PASS_ON;
        }
    }
    //注册进入过滤器
    stream_filter_register('string.md5','md5_filter');
    //print_r(stream_get_filters());

    //使用
    $file_path = dirname(__FILE__).DIRECTORY_SEPARATOR.'test.txt';
    $fp = fopen($file_path,"w+");
    stream_filter_append($fp,"string.md5",STREAM_FILTER_WRITE);
    $txt = "hello 
";
    fwrite($fp,$txt);
    rewind($fp);
    fpassthru($fp);
    fclose($fp);
原文地址:https://www.cnblogs.com/ikasa007/p/5142390.html