Return to include_userstream_003.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / file |
1.1 misho 1: --TEST-- 2: allow_url_fopen disabled 3: --INI-- 4: allow_url_fopen=0 5: allow_url_include=1 6: --FILE-- 7: <?php 8: class test { 9: private $data = '<?php echo "Hello World\n";?>'; 10: private $pos; 11: private $stream = null; 12: 13: function stream_open($path, $mode, $options, &$opened_path) 14: { 15: if (strpos($path, "test2://") === 0) { 16: $this->stream = fopen("test1://".substr($path, 8), $mode); 17: return !empty($this->stream); 18: } 19: if (strchr($mode, 'a')) 20: $this->pos = strlen($this->data); 21: else 22: $this->po = 0; 23: 24: return true; 25: } 26: 27: function stream_read($count) 28: { 29: if (!empty($this->stream)) { 30: return fread($this->stream, $count); 31: } 32: $ret = substr($this->data, $this->pos, $count); 33: $this->pos += strlen($ret); 34: return $ret; 35: } 36: 37: function stream_tell() 38: { 39: if (!empty($this->stream)) { 40: return ftell($this->stream); 41: } 42: return $this->pos; 43: } 44: 45: function stream_eof() 46: { 47: if (!empty($this->stream)) { 48: return feof($this->stream); 49: } 50: return $this->pos >= strlen($this->data); 51: } 52: 53: function stream_seek($offset, $whence) 54: { 55: if (!empty($this->stream)) { 56: return fseek($this->stream, $offset, $whence); 57: } 58: switch($whence) { 59: case SEEK_SET: 60: if ($offset < $this->data && $offset >= 0) { 61: $this->pos = $offset; 62: return true; 63: } else { 64: return false; 65: } 66: break; 67: case SEEK_CUR: 68: if ($offset >= 0) { 69: $this->pos += $offset; 70: return true; 71: } else { 72: return false; 73: } 74: break; 75: case SEEK_END: 76: if (strlen($this->data) + $offset >= 0) { 77: $this->pos = strlen($this->data) + $offset; 78: return true; 79: } else { 80: return false; 81: } 82: break; 83: default: 84: return false; 85: } 86: } 87: 88: } 89: 90: stream_register_wrapper("test1", "test", STREAM_IS_URL); 91: stream_register_wrapper("test2", "test"); 92: echo file_get_contents("test1://hello"),"\n"; 93: include "test1://hello"; 94: echo file_get_contents("test2://hello"),"\n"; 95: include "test2://hello"; 96: --EXPECTF-- 97: Warning: file_get_contents(): test1:// wrapper is disabled in the server configuration by allow_url_fopen=0 in %sinclude_userstream_003.php on line 86 98: 99: Warning: file_get_contents(test1://hello): failed to open stream: no suitable wrapper could be found in %sinclude_userstream_003.php on line 86 100: 101: 102: Warning: include(): test1:// wrapper is disabled in the server configuration by allow_url_fopen=0 in %sinclude_userstream_003.php on line 87 103: 104: Warning: include(test1://hello): failed to open stream: no suitable wrapper could be found in %sinclude_userstream_003.php on line 87 105: 106: Warning: include(): Failed opening 'test1://hello' for inclusion (include_path='%s') in %sinclude_userstream_003.php on line 87 107: 108: Warning: fopen(): test1:// wrapper is disabled in the server configuration by allow_url_fopen=0 in %sinclude_userstream_003.php on line 10 109: 110: Warning: fopen(test1://hello): failed to open stream: no suitable wrapper could be found in %sinclude_userstream_003.php on line 10 111: 112: Warning: file_get_contents(test2://hello): failed to open stream: "test::stream_open" call failed in %sinclude_userstream_003.php on line 88 113: 114: 115: Warning: fopen(): test1:// wrapper is disabled in the server configuration by allow_url_fopen=0 in %sinclude_userstream_003.php on line 10 116: 117: Warning: fopen(test1://hello): failed to open stream: no suitable wrapper could be found in %sinclude_userstream_003.php on line 10 118: 119: Warning: include(test2://hello): failed to open stream: "test::stream_open" call failed in %sinclude_userstream_003.php on line 89 120: 121: Warning: include(): Failed opening 'test2://hello' for inclusion (include_path='%s') in %sinclude_userstream_003.php on line 89