8.6 Eigene Filter schreiben

Problem

Sie würden gern einen Stream filtern, aber PHP hat nicht den passenden Filter dafür. Zum Beispiel möchten Sie überzählige Leerzeichen und anderen Whitespace aus einem String entfernen, bevor Sie ihn nach php://output ausgeben.

Lösung

Implementieren Sie Ihren eigenen Filter:

class WhitespaceFilter extends php_user_filter { function filter($in, $out, &$consumed, $closing) { while ($bucket = stream_bucket_make_writeable($in)) { $consumed += $bucket->datalen; $bucket->data = preg_replace("/(\s)\s+/","$1",$bucket->data); $bucket->datalen = strlen($bucket->data); stream_bucket_append($out, $bucket); } return PSFS_PASS_ON; } } stream_filter_register("convert.whitespace","WhitespaceFilter"); echo file_put_contents("php://filter/write=convert.whitespace/resource=php://output", ...

Get PHP 5 Kochbuch, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.