1--TEST-- 2Test fscanf() function: usage variations - char formats with arrays 3--FILE-- 4<?php 5 6/* Test fscanf() to scan arrays using different char format types */ 7 8$file_path = __DIR__; 9 10echo "*** Test fscanf(): different char format types with arrays ***\n"; 11 12// create a file 13$filename = "$file_path/fscanf_variation23.tmp"; 14$file_handle = fopen($filename, "w"); 15if($file_handle == false) 16 exit("Error:failed to open file $filename"); 17 18// array types 19$array_types = array ( 20 array(), 21 array(0), 22 array(1), 23 array(NULL), 24 array(null), 25 array("string"), 26 array(true), 27 array(TRUE), 28 array(false), 29 array(FALSE), 30 array(1,2,3,4), 31 array(1 => "One", "two" => 2) 32); 33 34$char_formats = array( "%c", 35 "%hc", "%lc", "%Lc", 36 " %c", "%c ", "% c", 37 "\t%c", "\n%c", "%4c", 38 "%30c", "%[a-zA-Z@#$&0-9]", "%*c"); 39 40$counter = 1; 41 42// writing to the file 43foreach($array_types as $value) { 44 @fprintf($file_handle, "%s", $value); 45 @fprintf($file_handle, "\n"); 46} 47// closing the file 48fclose($file_handle); 49 50// opening the file for reading 51$file_handle = fopen($filename, "r"); 52if($file_handle == false) { 53 exit("Error:failed to open file $filename"); 54} 55 56$counter = 1; 57// reading the values from file using different char formats 58foreach($char_formats as $char_format) { 59 // rewind the file so that for every foreach iteration the file pointer starts from bof 60 rewind($file_handle); 61 echo "\n-- iteration $counter --\n"; 62 while( !feof($file_handle) ) { 63 try { 64 var_dump(fscanf($file_handle,$char_format)); 65 } catch (ValueError $exception) { 66 echo $exception->getMessage() . "\n"; 67 } 68 } 69 $counter++; 70} 71 72echo "\n*** Done ***"; 73?> 74--CLEAN-- 75<?php 76$file_path = __DIR__; 77$filename = "$file_path/fscanf_variation23.tmp"; 78unlink($filename); 79?> 80--EXPECT-- 81*** Test fscanf(): different char format types with arrays *** 82 83-- iteration 1 -- 84array(1) { 85 [0]=> 86 string(1) "A" 87} 88array(1) { 89 [0]=> 90 string(1) "A" 91} 92array(1) { 93 [0]=> 94 string(1) "A" 95} 96array(1) { 97 [0]=> 98 string(1) "A" 99} 100array(1) { 101 [0]=> 102 string(1) "A" 103} 104array(1) { 105 [0]=> 106 string(1) "A" 107} 108array(1) { 109 [0]=> 110 string(1) "A" 111} 112array(1) { 113 [0]=> 114 string(1) "A" 115} 116array(1) { 117 [0]=> 118 string(1) "A" 119} 120array(1) { 121 [0]=> 122 string(1) "A" 123} 124array(1) { 125 [0]=> 126 string(1) "A" 127} 128array(1) { 129 [0]=> 130 string(1) "A" 131} 132bool(false) 133 134-- iteration 2 -- 135array(1) { 136 [0]=> 137 string(1) "A" 138} 139array(1) { 140 [0]=> 141 string(1) "A" 142} 143array(1) { 144 [0]=> 145 string(1) "A" 146} 147array(1) { 148 [0]=> 149 string(1) "A" 150} 151array(1) { 152 [0]=> 153 string(1) "A" 154} 155array(1) { 156 [0]=> 157 string(1) "A" 158} 159array(1) { 160 [0]=> 161 string(1) "A" 162} 163array(1) { 164 [0]=> 165 string(1) "A" 166} 167array(1) { 168 [0]=> 169 string(1) "A" 170} 171array(1) { 172 [0]=> 173 string(1) "A" 174} 175array(1) { 176 [0]=> 177 string(1) "A" 178} 179array(1) { 180 [0]=> 181 string(1) "A" 182} 183bool(false) 184 185-- iteration 3 -- 186array(1) { 187 [0]=> 188 string(1) "A" 189} 190array(1) { 191 [0]=> 192 string(1) "A" 193} 194array(1) { 195 [0]=> 196 string(1) "A" 197} 198array(1) { 199 [0]=> 200 string(1) "A" 201} 202array(1) { 203 [0]=> 204 string(1) "A" 205} 206array(1) { 207 [0]=> 208 string(1) "A" 209} 210array(1) { 211 [0]=> 212 string(1) "A" 213} 214array(1) { 215 [0]=> 216 string(1) "A" 217} 218array(1) { 219 [0]=> 220 string(1) "A" 221} 222array(1) { 223 [0]=> 224 string(1) "A" 225} 226array(1) { 227 [0]=> 228 string(1) "A" 229} 230array(1) { 231 [0]=> 232 string(1) "A" 233} 234bool(false) 235 236-- iteration 4 -- 237array(1) { 238 [0]=> 239 string(1) "A" 240} 241array(1) { 242 [0]=> 243 string(1) "A" 244} 245array(1) { 246 [0]=> 247 string(1) "A" 248} 249array(1) { 250 [0]=> 251 string(1) "A" 252} 253array(1) { 254 [0]=> 255 string(1) "A" 256} 257array(1) { 258 [0]=> 259 string(1) "A" 260} 261array(1) { 262 [0]=> 263 string(1) "A" 264} 265array(1) { 266 [0]=> 267 string(1) "A" 268} 269array(1) { 270 [0]=> 271 string(1) "A" 272} 273array(1) { 274 [0]=> 275 string(1) "A" 276} 277array(1) { 278 [0]=> 279 string(1) "A" 280} 281array(1) { 282 [0]=> 283 string(1) "A" 284} 285bool(false) 286 287-- iteration 5 -- 288array(1) { 289 [0]=> 290 string(1) "A" 291} 292array(1) { 293 [0]=> 294 string(1) "A" 295} 296array(1) { 297 [0]=> 298 string(1) "A" 299} 300array(1) { 301 [0]=> 302 string(1) "A" 303} 304array(1) { 305 [0]=> 306 string(1) "A" 307} 308array(1) { 309 [0]=> 310 string(1) "A" 311} 312array(1) { 313 [0]=> 314 string(1) "A" 315} 316array(1) { 317 [0]=> 318 string(1) "A" 319} 320array(1) { 321 [0]=> 322 string(1) "A" 323} 324array(1) { 325 [0]=> 326 string(1) "A" 327} 328array(1) { 329 [0]=> 330 string(1) "A" 331} 332array(1) { 333 [0]=> 334 string(1) "A" 335} 336bool(false) 337 338-- iteration 6 -- 339array(1) { 340 [0]=> 341 string(1) "A" 342} 343array(1) { 344 [0]=> 345 string(1) "A" 346} 347array(1) { 348 [0]=> 349 string(1) "A" 350} 351array(1) { 352 [0]=> 353 string(1) "A" 354} 355array(1) { 356 [0]=> 357 string(1) "A" 358} 359array(1) { 360 [0]=> 361 string(1) "A" 362} 363array(1) { 364 [0]=> 365 string(1) "A" 366} 367array(1) { 368 [0]=> 369 string(1) "A" 370} 371array(1) { 372 [0]=> 373 string(1) "A" 374} 375array(1) { 376 [0]=> 377 string(1) "A" 378} 379array(1) { 380 [0]=> 381 string(1) "A" 382} 383array(1) { 384 [0]=> 385 string(1) "A" 386} 387bool(false) 388 389-- iteration 7 -- 390Bad scan conversion character " " 391Bad scan conversion character " " 392Bad scan conversion character " " 393Bad scan conversion character " " 394Bad scan conversion character " " 395Bad scan conversion character " " 396Bad scan conversion character " " 397Bad scan conversion character " " 398Bad scan conversion character " " 399Bad scan conversion character " " 400Bad scan conversion character " " 401Bad scan conversion character " " 402bool(false) 403 404-- iteration 8 -- 405array(1) { 406 [0]=> 407 string(1) "A" 408} 409array(1) { 410 [0]=> 411 string(1) "A" 412} 413array(1) { 414 [0]=> 415 string(1) "A" 416} 417array(1) { 418 [0]=> 419 string(1) "A" 420} 421array(1) { 422 [0]=> 423 string(1) "A" 424} 425array(1) { 426 [0]=> 427 string(1) "A" 428} 429array(1) { 430 [0]=> 431 string(1) "A" 432} 433array(1) { 434 [0]=> 435 string(1) "A" 436} 437array(1) { 438 [0]=> 439 string(1) "A" 440} 441array(1) { 442 [0]=> 443 string(1) "A" 444} 445array(1) { 446 [0]=> 447 string(1) "A" 448} 449array(1) { 450 [0]=> 451 string(1) "A" 452} 453bool(false) 454 455-- iteration 9 -- 456array(1) { 457 [0]=> 458 string(1) "A" 459} 460array(1) { 461 [0]=> 462 string(1) "A" 463} 464array(1) { 465 [0]=> 466 string(1) "A" 467} 468array(1) { 469 [0]=> 470 string(1) "A" 471} 472array(1) { 473 [0]=> 474 string(1) "A" 475} 476array(1) { 477 [0]=> 478 string(1) "A" 479} 480array(1) { 481 [0]=> 482 string(1) "A" 483} 484array(1) { 485 [0]=> 486 string(1) "A" 487} 488array(1) { 489 [0]=> 490 string(1) "A" 491} 492array(1) { 493 [0]=> 494 string(1) "A" 495} 496array(1) { 497 [0]=> 498 string(1) "A" 499} 500array(1) { 501 [0]=> 502 string(1) "A" 503} 504bool(false) 505 506-- iteration 10 -- 507array(1) { 508 [0]=> 509 string(4) "Arra" 510} 511array(1) { 512 [0]=> 513 string(4) "Arra" 514} 515array(1) { 516 [0]=> 517 string(4) "Arra" 518} 519array(1) { 520 [0]=> 521 string(4) "Arra" 522} 523array(1) { 524 [0]=> 525 string(4) "Arra" 526} 527array(1) { 528 [0]=> 529 string(4) "Arra" 530} 531array(1) { 532 [0]=> 533 string(4) "Arra" 534} 535array(1) { 536 [0]=> 537 string(4) "Arra" 538} 539array(1) { 540 [0]=> 541 string(4) "Arra" 542} 543array(1) { 544 [0]=> 545 string(4) "Arra" 546} 547array(1) { 548 [0]=> 549 string(4) "Arra" 550} 551array(1) { 552 [0]=> 553 string(4) "Arra" 554} 555bool(false) 556 557-- iteration 11 -- 558array(1) { 559 [0]=> 560 string(5) "Array" 561} 562array(1) { 563 [0]=> 564 string(5) "Array" 565} 566array(1) { 567 [0]=> 568 string(5) "Array" 569} 570array(1) { 571 [0]=> 572 string(5) "Array" 573} 574array(1) { 575 [0]=> 576 string(5) "Array" 577} 578array(1) { 579 [0]=> 580 string(5) "Array" 581} 582array(1) { 583 [0]=> 584 string(5) "Array" 585} 586array(1) { 587 [0]=> 588 string(5) "Array" 589} 590array(1) { 591 [0]=> 592 string(5) "Array" 593} 594array(1) { 595 [0]=> 596 string(5) "Array" 597} 598array(1) { 599 [0]=> 600 string(5) "Array" 601} 602array(1) { 603 [0]=> 604 string(5) "Array" 605} 606bool(false) 607 608-- iteration 12 -- 609array(1) { 610 [0]=> 611 string(5) "Array" 612} 613array(1) { 614 [0]=> 615 string(5) "Array" 616} 617array(1) { 618 [0]=> 619 string(5) "Array" 620} 621array(1) { 622 [0]=> 623 string(5) "Array" 624} 625array(1) { 626 [0]=> 627 string(5) "Array" 628} 629array(1) { 630 [0]=> 631 string(5) "Array" 632} 633array(1) { 634 [0]=> 635 string(5) "Array" 636} 637array(1) { 638 [0]=> 639 string(5) "Array" 640} 641array(1) { 642 [0]=> 643 string(5) "Array" 644} 645array(1) { 646 [0]=> 647 string(5) "Array" 648} 649array(1) { 650 [0]=> 651 string(5) "Array" 652} 653array(1) { 654 [0]=> 655 string(5) "Array" 656} 657bool(false) 658 659-- iteration 13 -- 660array(0) { 661} 662array(0) { 663} 664array(0) { 665} 666array(0) { 667} 668array(0) { 669} 670array(0) { 671} 672array(0) { 673} 674array(0) { 675} 676array(0) { 677} 678array(0) { 679} 680array(0) { 681} 682array(0) { 683} 684bool(false) 685 686*** Done *** 687