1--TEST-- 2Test fopen(), fclose() & feof() functions: basic functionality 3--FILE-- 4<?php 5echo "*** Testing basic operations of fopen() and fclose() functions ***\n"; 6$modes = array( 7 "w", 8 "wb", 9 "wt", 10 "w+", 11 "w+b", 12 "w+t", 13 14 "r", 15 "rb", 16 "rt", 17 "r+", 18 "r+b", 19 "r+t", 20 21 "a", 22 "ab", 23 "at", 24 "a+", 25 "a+t", 26 "a+b" 27); 28 29for( $i=0; $i<count($modes); $i++ ) { 30 echo "\n-- Iteration with mode '$modes[$i]' --\n"; 31 32 $filename = __DIR__."/007_basic.tmp"; 33 // check fopen() 34 $handle = fopen($filename, $modes[$i]); 35 var_dump($handle ); 36 var_dump( ftell($handle) ); 37 var_dump( feof($handle) ); 38 39 // check fclose() 40 var_dump( fclose($handle) ); 41 var_dump( $handle ); 42 // confirm the closure, using ftell() and feof() 43 try { 44 var_dump( ftell($handle) ); 45 } catch (TypeError $e) { 46 echo $e->getMessage(), "\n"; 47 } 48 try { 49 var_dump( feof($handle) ); 50 } catch (TypeError $e) { 51 echo $e->getMessage(), "\n"; 52 } 53} 54 55// remove the temp file 56unlink($filename); 57 58$x_modes = array( 59 "x", 60 "xb", 61 "xt", 62 "x+", 63 "x+b", 64 "x+t" 65); 66 67for( $i=0; $i<count($x_modes); $i++ ) { 68 echo "\n-- Iteration with mode '$x_modes[$i]' --\n"; 69 $handle = fopen($filename, $x_modes[$i]); 70 var_dump($handle ); 71 var_dump( ftell($handle) ); 72 var_dump( feof($handle) ); 73 74 // check fclose() 75 var_dump( fclose($handle) ); 76 var_dump( $handle ); 77 // confirm the closure, using ftell() and feof() 78 try { 79 var_dump( ftell($handle) ); 80 } catch (TypeError $e) { 81 echo $e->getMessage(), "\n"; 82 } 83 try { 84 var_dump( feof($handle) ); 85 } catch (TypeError $e) { 86 echo $e->getMessage(), "\n"; 87 } 88 var_dump( $handle ); 89 90 // remove the file 91 unlink( $filename ); 92} 93 94echo "\n*** Done ***\n"; 95?> 96--EXPECTF-- 97*** Testing basic operations of fopen() and fclose() functions *** 98 99-- Iteration with mode 'w' -- 100resource(%d) of type (stream) 101int(0) 102bool(false) 103bool(true) 104resource(%d) of type (Unknown) 105ftell(): supplied resource is not a valid stream resource 106feof(): supplied resource is not a valid stream resource 107 108-- Iteration with mode 'wb' -- 109resource(%d) of type (stream) 110int(0) 111bool(false) 112bool(true) 113resource(%d) of type (Unknown) 114ftell(): supplied resource is not a valid stream resource 115feof(): supplied resource is not a valid stream resource 116 117-- Iteration with mode 'wt' -- 118resource(%d) of type (stream) 119int(0) 120bool(false) 121bool(true) 122resource(%d) of type (Unknown) 123ftell(): supplied resource is not a valid stream resource 124feof(): supplied resource is not a valid stream resource 125 126-- Iteration with mode 'w+' -- 127resource(%d) of type (stream) 128int(0) 129bool(false) 130bool(true) 131resource(%d) of type (Unknown) 132ftell(): supplied resource is not a valid stream resource 133feof(): supplied resource is not a valid stream resource 134 135-- Iteration with mode 'w+b' -- 136resource(%d) of type (stream) 137int(0) 138bool(false) 139bool(true) 140resource(%d) of type (Unknown) 141ftell(): supplied resource is not a valid stream resource 142feof(): supplied resource is not a valid stream resource 143 144-- Iteration with mode 'w+t' -- 145resource(%d) of type (stream) 146int(0) 147bool(false) 148bool(true) 149resource(%d) of type (Unknown) 150ftell(): supplied resource is not a valid stream resource 151feof(): supplied resource is not a valid stream resource 152 153-- Iteration with mode 'r' -- 154resource(%d) of type (stream) 155int(0) 156bool(false) 157bool(true) 158resource(%d) of type (Unknown) 159ftell(): supplied resource is not a valid stream resource 160feof(): supplied resource is not a valid stream resource 161 162-- Iteration with mode 'rb' -- 163resource(%d) of type (stream) 164int(0) 165bool(false) 166bool(true) 167resource(%d) of type (Unknown) 168ftell(): supplied resource is not a valid stream resource 169feof(): supplied resource is not a valid stream resource 170 171-- Iteration with mode 'rt' -- 172resource(%d) of type (stream) 173int(0) 174bool(false) 175bool(true) 176resource(%d) of type (Unknown) 177ftell(): supplied resource is not a valid stream resource 178feof(): supplied resource is not a valid stream resource 179 180-- Iteration with mode 'r+' -- 181resource(%d) of type (stream) 182int(0) 183bool(false) 184bool(true) 185resource(%d) of type (Unknown) 186ftell(): supplied resource is not a valid stream resource 187feof(): supplied resource is not a valid stream resource 188 189-- Iteration with mode 'r+b' -- 190resource(%d) of type (stream) 191int(0) 192bool(false) 193bool(true) 194resource(%d) of type (Unknown) 195ftell(): supplied resource is not a valid stream resource 196feof(): supplied resource is not a valid stream resource 197 198-- Iteration with mode 'r+t' -- 199resource(%d) of type (stream) 200int(0) 201bool(false) 202bool(true) 203resource(%d) of type (Unknown) 204ftell(): supplied resource is not a valid stream resource 205feof(): supplied resource is not a valid stream resource 206 207-- Iteration with mode 'a' -- 208resource(%d) of type (stream) 209int(0) 210bool(false) 211bool(true) 212resource(%d) of type (Unknown) 213ftell(): supplied resource is not a valid stream resource 214feof(): supplied resource is not a valid stream resource 215 216-- Iteration with mode 'ab' -- 217resource(%d) of type (stream) 218int(0) 219bool(false) 220bool(true) 221resource(%d) of type (Unknown) 222ftell(): supplied resource is not a valid stream resource 223feof(): supplied resource is not a valid stream resource 224 225-- Iteration with mode 'at' -- 226resource(%d) of type (stream) 227int(0) 228bool(false) 229bool(true) 230resource(%d) of type (Unknown) 231ftell(): supplied resource is not a valid stream resource 232feof(): supplied resource is not a valid stream resource 233 234-- Iteration with mode 'a+' -- 235resource(%d) of type (stream) 236int(0) 237bool(false) 238bool(true) 239resource(%d) of type (Unknown) 240ftell(): supplied resource is not a valid stream resource 241feof(): supplied resource is not a valid stream resource 242 243-- Iteration with mode 'a+t' -- 244resource(%d) of type (stream) 245int(0) 246bool(false) 247bool(true) 248resource(%d) of type (Unknown) 249ftell(): supplied resource is not a valid stream resource 250feof(): supplied resource is not a valid stream resource 251 252-- Iteration with mode 'a+b' -- 253resource(%d) of type (stream) 254int(0) 255bool(false) 256bool(true) 257resource(%d) of type (Unknown) 258ftell(): supplied resource is not a valid stream resource 259feof(): supplied resource is not a valid stream resource 260 261-- Iteration with mode 'x' -- 262resource(%d) of type (stream) 263int(0) 264bool(false) 265bool(true) 266resource(%d) of type (Unknown) 267ftell(): supplied resource is not a valid stream resource 268feof(): supplied resource is not a valid stream resource 269resource(%d) of type (Unknown) 270 271-- Iteration with mode 'xb' -- 272resource(%d) of type (stream) 273int(0) 274bool(false) 275bool(true) 276resource(%d) of type (Unknown) 277ftell(): supplied resource is not a valid stream resource 278feof(): supplied resource is not a valid stream resource 279resource(%d) of type (Unknown) 280 281-- Iteration with mode 'xt' -- 282resource(%d) of type (stream) 283int(0) 284bool(false) 285bool(true) 286resource(%d) of type (Unknown) 287ftell(): supplied resource is not a valid stream resource 288feof(): supplied resource is not a valid stream resource 289resource(%d) of type (Unknown) 290 291-- Iteration with mode 'x+' -- 292resource(%d) of type (stream) 293int(0) 294bool(false) 295bool(true) 296resource(%d) of type (Unknown) 297ftell(): supplied resource is not a valid stream resource 298feof(): supplied resource is not a valid stream resource 299resource(%d) of type (Unknown) 300 301-- Iteration with mode 'x+b' -- 302resource(%d) of type (stream) 303int(0) 304bool(false) 305bool(true) 306resource(%d) of type (Unknown) 307ftell(): supplied resource is not a valid stream resource 308feof(): supplied resource is not a valid stream resource 309resource(%d) of type (Unknown) 310 311-- Iteration with mode 'x+t' -- 312resource(%d) of type (stream) 313int(0) 314bool(false) 315bool(true) 316resource(%d) of type (Unknown) 317ftell(): supplied resource is not a valid stream resource 318feof(): supplied resource is not a valid stream resource 319resource(%d) of type (Unknown) 320 321*** Done *** 322