File: read.phpt

package info (click to toggle)
php5 5.6.7%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 150,376 kB
  • sloc: ansic: 727,510; php: 21,966; sh: 12,356; cpp: 8,763; xml: 6,105; yacc: 1,551; exp: 1,514; makefile: 1,461; pascal: 1,048; awk: 538; perl: 315; sql: 22
file content (72 lines) | stat: -rw-r--r-- 1,863 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
--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