Return to fscanf_variation26.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / file |
1.1 misho 1: --TEST-- 2: Test fscanf() function: usage variations - char formats with chars 3: --FILE-- 4: <?php 5: 6: /* 7: Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] ); 8: Description: Parses input from a file according to a format 9: */ 10: 11: /* Test fscanf() to scan different chars using different char format types */ 12: 13: $file_path = dirname(__FILE__); 14: 15: echo "*** Test fscanf(): different char format types with chars ***\n"; 16: 17: // create a file 18: $filename = "$file_path/fscanf_variation26.tmp"; 19: $file_handle = fopen($filename, "w"); 20: if($file_handle == false) 21: exit("Error:failed to open file $filename"); 22: 23: // array of chars 24: $char_types = array( 'a', "a", 67, -67, 99 ); 25: 26: $char_formats = array( "%c", 27: "%hc", "%lc", "%Lc", 28: " %c", "%c ", "% c", 29: "\t%c", "\n%c", "%4c", 30: "%30c", "%[a-zA-Z@#$&0-9]", "%*c"); 31: 32: $counter = 1; 33: 34: // writing to the file 35: foreach($char_types as $char) { 36: @fprintf($file_handle, $char); 37: @fprintf($file_handle, "\n"); 38: } 39: // closing the file 40: fclose($file_handle); 41: 42: // opening the file for reading 43: $file_handle = fopen($filename, "r"); 44: if($file_handle == false) { 45: exit("Error:failed to open file $filename"); 46: } 47: 48: $counter = 1; 49: // reading the values from file using different char formats 50: foreach($char_formats as $char_format) { 51: // rewind the file so that for every foreach iteration the file pointer starts from bof 52: rewind($file_handle); 53: echo "\n-- iteration $counter --\n"; 54: while( !feof($file_handle) ) { 55: var_dump( fscanf($file_handle,$char_format) ); 56: } 57: $counter++; 58: } 59: 60: echo "\n*** Done ***"; 61: ?> 62: --CLEAN-- 63: <?php 64: $file_path = dirname(__FILE__); 65: $filename = "$file_path/fscanf_variation26.tmp"; 66: unlink($filename); 67: ?> 68: --EXPECTF-- 69: *** Test fscanf(): different char format types with chars *** 70: 71: -- iteration 1 -- 72: array(1) { 73: [0]=> 74: string(1) "a" 75: } 76: array(1) { 77: [0]=> 78: string(1) "a" 79: } 80: array(1) { 81: [0]=> 82: string(1) "6" 83: } 84: array(1) { 85: [0]=> 86: string(1) "-" 87: } 88: array(1) { 89: [0]=> 90: string(1) "9" 91: } 92: bool(false) 93: 94: -- iteration 2 -- 95: array(1) { 96: [0]=> 97: string(1) "a" 98: } 99: array(1) { 100: [0]=> 101: string(1) "a" 102: } 103: array(1) { 104: [0]=> 105: string(1) "6" 106: } 107: array(1) { 108: [0]=> 109: string(1) "-" 110: } 111: array(1) { 112: [0]=> 113: string(1) "9" 114: } 115: bool(false) 116: 117: -- iteration 3 -- 118: array(1) { 119: [0]=> 120: string(1) "a" 121: } 122: array(1) { 123: [0]=> 124: string(1) "a" 125: } 126: array(1) { 127: [0]=> 128: string(1) "6" 129: } 130: array(1) { 131: [0]=> 132: string(1) "-" 133: } 134: array(1) { 135: [0]=> 136: string(1) "9" 137: } 138: bool(false) 139: 140: -- iteration 4 -- 141: array(1) { 142: [0]=> 143: string(1) "a" 144: } 145: array(1) { 146: [0]=> 147: string(1) "a" 148: } 149: array(1) { 150: [0]=> 151: string(1) "6" 152: } 153: array(1) { 154: [0]=> 155: string(1) "-" 156: } 157: array(1) { 158: [0]=> 159: string(1) "9" 160: } 161: bool(false) 162: 163: -- iteration 5 -- 164: array(1) { 165: [0]=> 166: string(1) "a" 167: } 168: array(1) { 169: [0]=> 170: string(1) "a" 171: } 172: array(1) { 173: [0]=> 174: string(1) "6" 175: } 176: array(1) { 177: [0]=> 178: string(1) "-" 179: } 180: array(1) { 181: [0]=> 182: string(1) "9" 183: } 184: bool(false) 185: 186: -- iteration 6 -- 187: array(1) { 188: [0]=> 189: string(1) "a" 190: } 191: array(1) { 192: [0]=> 193: string(1) "a" 194: } 195: array(1) { 196: [0]=> 197: string(1) "6" 198: } 199: array(1) { 200: [0]=> 201: string(1) "-" 202: } 203: array(1) { 204: [0]=> 205: string(1) "9" 206: } 207: bool(false) 208: 209: -- iteration 7 -- 210: 211: Warning: fscanf(): Bad scan conversion character " " in %s on line %d 212: NULL 213: 214: Warning: fscanf(): Bad scan conversion character " " in %s on line %d 215: NULL 216: 217: Warning: fscanf(): Bad scan conversion character " " in %s on line %d 218: NULL 219: 220: Warning: fscanf(): Bad scan conversion character " " in %s on line %d 221: NULL 222: 223: Warning: fscanf(): Bad scan conversion character " " in %s on line %d 224: NULL 225: bool(false) 226: 227: -- iteration 8 -- 228: array(1) { 229: [0]=> 230: string(1) "a" 231: } 232: array(1) { 233: [0]=> 234: string(1) "a" 235: } 236: array(1) { 237: [0]=> 238: string(1) "6" 239: } 240: array(1) { 241: [0]=> 242: string(1) "-" 243: } 244: array(1) { 245: [0]=> 246: string(1) "9" 247: } 248: bool(false) 249: 250: -- iteration 9 -- 251: array(1) { 252: [0]=> 253: string(1) "a" 254: } 255: array(1) { 256: [0]=> 257: string(1) "a" 258: } 259: array(1) { 260: [0]=> 261: string(1) "6" 262: } 263: array(1) { 264: [0]=> 265: string(1) "-" 266: } 267: array(1) { 268: [0]=> 269: string(1) "9" 270: } 271: bool(false) 272: 273: -- iteration 10 -- 274: array(1) { 275: [0]=> 276: string(1) "a" 277: } 278: array(1) { 279: [0]=> 280: string(1) "a" 281: } 282: array(1) { 283: [0]=> 284: string(2) "67" 285: } 286: array(1) { 287: [0]=> 288: string(3) "-67" 289: } 290: array(1) { 291: [0]=> 292: string(2) "99" 293: } 294: bool(false) 295: 296: -- iteration 11 -- 297: array(1) { 298: [0]=> 299: string(1) "a" 300: } 301: array(1) { 302: [0]=> 303: string(1) "a" 304: } 305: array(1) { 306: [0]=> 307: string(2) "67" 308: } 309: array(1) { 310: [0]=> 311: string(3) "-67" 312: } 313: array(1) { 314: [0]=> 315: string(2) "99" 316: } 317: bool(false) 318: 319: -- iteration 12 -- 320: array(1) { 321: [0]=> 322: string(1) "a" 323: } 324: array(1) { 325: [0]=> 326: string(1) "a" 327: } 328: array(1) { 329: [0]=> 330: string(2) "67" 331: } 332: array(1) { 333: [0]=> 334: NULL 335: } 336: array(1) { 337: [0]=> 338: string(2) "99" 339: } 340: bool(false) 341: 342: -- iteration 13 -- 343: array(0) { 344: } 345: array(0) { 346: } 347: array(0) { 348: } 349: array(0) { 350: } 351: array(0) { 352: } 353: bool(false) 354: 355: *** Done *** 356: