File:
[ELWIX - Embedded LightWeight unIX -] /
embedaddon /
php /
ext /
standard /
tests /
filters /
read.phpt
Revision
1.1.1.1 (vendor branch):
download - view:
text,
annotated -
select for diffs -
revision graph
Tue Feb 21 23:48:04 2012 UTC (12 years, 6 months ago) by
misho
Branches:
php,
MAIN
CVS tags:
v5_4_3elwix,
v5_4_29p0,
v5_4_29,
v5_4_20p0,
v5_4_20,
v5_4_17p0,
v5_4_17,
v5_3_10,
HEAD
php
--TEST--
stream filter - reading
--FILE--
<?php
echo "-TEST\n";
class filter extends php_user_filter {
function filter($in, $out, &$consumed, $closing)
{
$output = 0;
while ($bucket = stream_bucket_make_writeable($in)) {
$bucket->data = strtoupper($bucket->data);
$consumed += $bucket->datalen;
stream_bucket_append($out, $bucket);
$output = 1;
}
if ($closing) {
$bucket = stream_bucket_new($this->stream, "\n===close===\n");
stream_bucket_append($out, $bucket);
$output = 1;
}
return $output ? PSFS_PASS_ON : PSFS_FEED_ME;
}
}
stream_filter_register("strtoupper", "filter")
or die("Failed to register filter");
if ($f = fopen(__FILE__, "rb")) {
stream_filter_append($f, "strtoupper");
while (!feof($f)) {
echo fread($f, 8192);
}
fclose($f);
}
echo "Done\n";
?>
--EXPECTF--
%sTEST
<?PHP
ECHO "-TEST\N";
CLASS FILTER EXTENDS PHP_USER_FILTER {
FUNCTION FILTER($IN, $OUT, &$CONSUMED, $CLOSING)
{
$OUTPUT = 0;
WHILE ($BUCKET = STREAM_BUCKET_MAKE_WRITEABLE($IN)) {
$BUCKET->DATA = STRTOUPPER($BUCKET->DATA);
$CONSUMED += $BUCKET->DATALEN;
STREAM_BUCKET_APPEND($OUT, $BUCKET);
$OUTPUT = 1;
}
IF ($CLOSING) {
$BUCKET = STREAM_BUCKET_NEW($THIS->STREAM, "\N===CLOSE===\N");
STREAM_BUCKET_APPEND($OUT, $BUCKET);
$OUTPUT = 1;
}
RETURN $OUTPUT ? PSFS_PASS_ON : PSFS_FEED_ME;
}
}
STREAM_FILTER_REGISTER("STRTOUPPER", "FILTER")
OR DIE("FAILED TO REGISTER FILTER");
IF ($F = FOPEN(__FILE__, "RB")) {
STREAM_FILTER_APPEND($F, "STRTOUPPER");
WHILE (!FEOF($F)) {
ECHO FREAD($F, 8192);
}
FCLOSE($F);
}
ECHO "DONE\N";
?>
===close===
Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>