1--TEST-- 2Stream: RFC2397 and seeking 3--INI-- 4allow_url_fopen=1 5--FILE-- 6<?php 7 8$streams = array( 9 "data:,012345", 10 ); 11 12foreach($streams as $stream) 13{ 14 echo "===$stream===\n"; 15 16 $fp = fopen($stream, 'rb'); 17 18 var_dump(ftell($fp)); 19 var_dump(feof($fp)); 20 echo "===S:4,S===\n"; 21 var_dump(fseek($fp, 4)); 22 var_dump(ftell($fp)); 23 var_dump(feof($fp)); 24 echo "===GETC===\n"; 25 var_dump(fgetc($fp)); 26 var_dump(ftell($fp)); 27 var_dump(feof($fp)); 28 echo "===GETC===\n"; 29 var_dump(fgetc($fp)); 30 var_dump(fgetc($fp)); 31 var_dump(ftell($fp)); 32 var_dump(feof($fp)); 33 echo "===REWIND===\n"; 34 var_dump(rewind($fp)); 35 var_dump(ftell($fp)); 36 var_dump(feof($fp)); 37 echo "===GETC===\n"; 38 var_dump(fgetc($fp)); 39 var_dump(ftell($fp)); 40 var_dump(feof($fp)); 41 echo "===S:3,S===\n"; 42 var_dump(fseek($fp, 3, SEEK_SET)); 43 var_dump(ftell($fp)); 44 var_dump(feof($fp)); 45 echo "===S:1,C===\n"; 46 var_dump(fseek($fp, 1, SEEK_CUR)); 47 var_dump(ftell($fp)); 48 var_dump(feof($fp)); 49 echo "===S:-2,C===\n"; 50 var_dump(fseek($fp, -2, SEEK_CUR)); 51 var_dump(ftell($fp)); 52 var_dump(feof($fp)); 53 echo "===S:-10,C===\n"; 54 var_dump(fseek($fp, -10, SEEK_CUR)); 55 var_dump(ftell($fp)); 56 var_dump(feof($fp)); 57 echo "===S:3,S===\n"; 58 var_dump(fseek($fp, 3, SEEK_SET)); 59 var_dump(ftell($fp)); 60 var_dump(feof($fp)); 61 echo "===S:10,C===\n"; 62 var_dump(fseek($fp, 10, SEEK_CUR)); 63 var_dump(ftell($fp)); 64 var_dump(feof($fp)); 65 echo "===S:-1,E===\n"; 66 var_dump(fseek($fp, -1, SEEK_END)); 67 var_dump(ftell($fp)); 68 var_dump(feof($fp)); 69 echo "===S:0,E===\n"; 70 var_dump(fseek($fp, 0, SEEK_END)); 71 var_dump(ftell($fp)); 72 var_dump(feof($fp)); 73 echo "===S:1,E===\n"; 74 var_dump(fseek($fp, 1, SEEK_END)); 75 var_dump(ftell($fp)); 76 var_dump(feof($fp)); 77 78 fclose($fp); 79} 80 81?> 82===DONE=== 83<?php exit(0); ?> 84--EXPECT-- 85===data:,012345=== 86int(0) 87bool(false) 88===S:4,S=== 89int(0) 90int(4) 91bool(false) 92===GETC=== 93string(1) "4" 94int(5) 95bool(false) 96===GETC=== 97string(1) "5" 98bool(false) 99int(6) 100bool(true) 101===REWIND=== 102bool(true) 103int(0) 104bool(false) 105===GETC=== 106string(1) "0" 107int(1) 108bool(false) 109===S:3,S=== 110int(0) 111int(3) 112bool(false) 113===S:1,C=== 114int(0) 115int(4) 116bool(false) 117===S:-2,C=== 118int(0) 119int(2) 120bool(false) 121===S:-10,C=== 122int(-1) 123bool(false) 124bool(false) 125===S:3,S=== 126int(0) 127int(3) 128bool(false) 129===S:10,C=== 130int(-1) 131bool(false) 132bool(false) 133===S:-1,E=== 134int(0) 135int(5) 136bool(false) 137===S:0,E=== 138int(0) 139int(6) 140bool(false) 141===S:1,E=== 142int(-1) 143bool(false) 144bool(false) 145===DONE=== 146