diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2013-03-14 05:42:27 +0000 |
---|---|---|
committer | <> | 2013-04-03 16:25:08 +0000 |
commit | c4dd7a1a684490673e25aaf4fabec5df138854c4 (patch) | |
tree | 4d57c44caae4480efff02b90b9be86f44bf25409 /ext/standard/tests/file/include_userstream_001.phpt | |
download | php2-master.tar.gz |
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'ext/standard/tests/file/include_userstream_001.phpt')
-rw-r--r-- | ext/standard/tests/file/include_userstream_001.phpt | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/ext/standard/tests/file/include_userstream_001.phpt b/ext/standard/tests/file/include_userstream_001.phpt new file mode 100644 index 0000000..d805afd --- /dev/null +++ b/ext/standard/tests/file/include_userstream_001.phpt @@ -0,0 +1,82 @@ +--TEST-- +User streams and include() +--INI-- +allow_url_fopen=1 +allow_url_include=0 +--FILE-- +<?php +class test { + private $data = '<?php echo "Hello World\n";?>'; + private $pos; + + function stream_open($path, $mode, $options, &$opened_path) + { + if (strchr($mode, 'a')) + $this->pos = strlen($this->data); + else + $this->po = 0; + + return true; + } + + function stream_read($count) + { + $ret = substr($this->data, $this->pos, $count); + $this->pos += strlen($ret); + return $ret; + } + + function stream_tell() + { + return $this->pos; + } + + function stream_eof() + { + return $this->pos >= strlen($this->data); + } + + function stream_seek($offset, $whence) + { + switch($whence) { + case SEEK_SET: + if ($offset < $this->data && $offset >= 0) { + $this->pos = $offset; + return true; + } else { + return false; + } + break; + case SEEK_CUR: + if ($offset >= 0) { + $this->pos += $offset; + return true; + } else { + return false; + } + break; + case SEEK_END: + if (strlen($this->data) + $offset >= 0) { + $this->pos = strlen($this->data) + $offset; + return true; + } else { + return false; + } + break; + default: + return false; + } + } + +} + +stream_register_wrapper("test1", "test", STREAM_IS_URL); +stream_register_wrapper("test2", "test"); +echo @file_get_contents("test1://hello"),"\n"; +@include "test1://hello"; +echo @file_get_contents("test2://hello"),"\n"; +@include "test2://hello"; +--EXPECT-- +<?php echo "Hello World\n";?> +<?php echo "Hello World\n";?> +Hello World |