Annotation of embedaddon/php/ext/standard/tests/file/include_userstream_001.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: User streams and include()
                      3: --INI--
                      4: allow_url_fopen=1
                      5: allow_url_include=0
                      6: --FILE--
                      7: <?php
                      8: class test {
                      9:     private $data = '<?php echo "Hello World\n";?>';
                     10:        private $pos;
                     11: 
                     12:        function stream_open($path, $mode, $options, &$opened_path)
                     13:        {
                     14:                if (strchr($mode, 'a'))
                     15:                        $this->pos = strlen($this->data);
                     16:                else
                     17:                        $this->po = 0;
                     18:                
                     19:                return true;
                     20:        }
                     21: 
                     22:        function stream_read($count)
                     23:        {
                     24:                $ret = substr($this->data, $this->pos, $count);
                     25:                $this->pos += strlen($ret);
                     26:                return $ret;
                     27:        }
                     28: 
                     29:        function stream_tell()
                     30:        {
                     31:                return $this->pos;
                     32:        }
                     33: 
                     34:        function stream_eof()
                     35:        {
                     36:                return $this->pos >= strlen($this->data);
                     37:        }
                     38: 
                     39:        function stream_seek($offset, $whence)
                     40:        {
                     41:                switch($whence) {
                     42:                        case SEEK_SET:
                     43:                                if ($offset < $this->data && $offset >= 0) {
                     44:                                        $this->pos = $offset;
                     45:                                        return true;
                     46:                                } else {
                     47:                                        return false;
                     48:                                }
                     49:                                break;
                     50:                        case SEEK_CUR:
                     51:                                if ($offset >= 0) {
                     52:                                        $this->pos += $offset;
                     53:                                        return true;
                     54:                                } else {
                     55:                                        return false;
                     56:                                }
                     57:                                break;
                     58:                        case SEEK_END:
                     59:                                if (strlen($this->data) + $offset >= 0) {
                     60:                                        $this->pos = strlen($this->data) + $offset;
                     61:                                        return true;
                     62:                                } else {
                     63:                                        return false;
                     64:                                }
                     65:                                break;
                     66:                        default:
                     67:                                return false;
                     68:                }
                     69:        }
                     70: 
                     71: }
                     72: 
                     73: stream_register_wrapper("test1", "test", STREAM_IS_URL);
                     74: stream_register_wrapper("test2", "test");
                     75: echo @file_get_contents("test1://hello"),"\n";
                     76: @include "test1://hello";
                     77: echo @file_get_contents("test2://hello"),"\n";
                     78: @include "test2://hello";
                     79: --EXPECT--
                     80: <?php echo "Hello World\n";?>
                     81: <?php echo "Hello World\n";?>
                     82: Hello World

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>