1--TEST-- 2Testing stream_get_meta_data() "unread_bytes" field 3--FILE-- 4<?php 5 6$filename = __FILE__ . '.tmp'; 7 8$fp = fopen($filename, "w+"); 9 10echo "Write some data to the file:\n"; 11$i = 0; 12while ($i++ < 20) { 13 fwrite($fp, "a line of data\n"); 14} 15 16var_dump(stream_get_meta_data($fp)); 17 18//seek to start of file 19rewind($fp); 20 21echo "\n\nRead a line of the file, causing data to be buffered:\n"; 22var_dump(fgets($fp)); 23 24var_dump(stream_get_meta_data($fp)); 25 26echo "\n\nRead 20 bytes from the file:\n"; 27fread($fp, 20); 28 29var_dump(stream_get_meta_data($fp)); 30 31echo "\n\nRead entire file:\n"; 32while(!feof($fp)) { 33 fread($fp, 1); 34} 35 36var_dump(stream_get_meta_data($fp)); 37 38fclose($fp); 39 40unlink($filename); 41 42?> 43--EXPECTF-- 44Write some data to the file: 45array(9) { 46 ["timed_out"]=> 47 bool(false) 48 ["blocked"]=> 49 bool(true) 50 ["eof"]=> 51 bool(false) 52 ["wrapper_type"]=> 53 string(9) "plainfile" 54 ["stream_type"]=> 55 string(5) "STDIO" 56 ["mode"]=> 57 string(2) "w+" 58 ["unread_bytes"]=> 59 int(0) 60 ["seekable"]=> 61 bool(true) 62 ["uri"]=> 63 string(%i) "%s.tmp" 64} 65 66 67Read a line of the file, causing data to be buffered: 68string(15) "a line of data 69" 70array(9) { 71 ["timed_out"]=> 72 bool(false) 73 ["blocked"]=> 74 bool(true) 75 ["eof"]=> 76 bool(false) 77 ["wrapper_type"]=> 78 string(9) "plainfile" 79 ["stream_type"]=> 80 string(5) "STDIO" 81 ["mode"]=> 82 string(2) "w+" 83 ["unread_bytes"]=> 84 int(285) 85 ["seekable"]=> 86 bool(true) 87 ["uri"]=> 88 string(%i) "%s.tmp" 89} 90 91 92Read 20 bytes from the file: 93array(9) { 94 ["timed_out"]=> 95 bool(false) 96 ["blocked"]=> 97 bool(true) 98 ["eof"]=> 99 bool(false) 100 ["wrapper_type"]=> 101 string(9) "plainfile" 102 ["stream_type"]=> 103 string(5) "STDIO" 104 ["mode"]=> 105 string(2) "w+" 106 ["unread_bytes"]=> 107 int(265) 108 ["seekable"]=> 109 bool(true) 110 ["uri"]=> 111 string(%i) "%s.tmp" 112} 113 114 115Read entire file: 116array(9) { 117 ["timed_out"]=> 118 bool(false) 119 ["blocked"]=> 120 bool(true) 121 ["eof"]=> 122 bool(true) 123 ["wrapper_type"]=> 124 string(9) "plainfile" 125 ["stream_type"]=> 126 string(5) "STDIO" 127 ["mode"]=> 128 string(2) "w+" 129 ["unread_bytes"]=> 130 int(0) 131 ["seekable"]=> 132 bool(true) 133 ["uri"]=> 134 string(%i) "%s.tmp" 135} 136