1--TEST-- 2Test fscanf() function: usage variations - octal formats with float values 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 float values using different octal format types */ 12 13$file_path = __DIR__; 14 15echo "*** Test fscanf(): different octal format types with float values ***\n"; 16 17// create a file 18$filename = "$file_path/fscanf_variation28.tmp"; 19$file_handle = fopen($filename, "w"); 20if($file_handle == false) 21 exit("Error:failed to open file $filename"); 22 23// array of float type values 24 25$float_values = array ( 26 -2147483649, 27 2147483648, 28 -0x80000001, // float value, beyond max negative int 29 0x800000001, // float value, beyond max positive int 30 020000000001, // float value, beyond max positive int 31 -020000000001, // float value, beyond max negative int 32 0.0, 33 -0.1, 34 1.0, 35 1e5, 36 -1e6, 37 1E8, 38 -1E9, 39 10.0000000000000000005, 40 10.5e+5 41); 42 43$octal_formats = array( "%o", 44 "%ho", "%lo", "%Lo", 45 " %o", "%o ", "% o", 46 "\t%o", "\n%o", "%4o", 47 "%30o", "%[0-7]", "%*o" 48 ); 49 50$counter = 1; 51 52// writing to the file 53foreach($float_values as $value) { 54 @fprintf($file_handle, $value); 55 @fprintf($file_handle, "\n"); 56} 57// closing the file 58fclose($file_handle); 59 60// opening the file for reading 61$file_handle = fopen($filename, "r"); 62if($file_handle == false) { 63 exit("Error:failed to open file $filename"); 64} 65 66$counter = 1; 67// reading the values from file using different octal formats 68foreach($octal_formats as $octal_format) { 69 // rewind the file so that for every foreach iteration the file pointer starts from bof 70 rewind($file_handle); 71 echo "\n-- iteration $counter --\n"; 72 while( !feof($file_handle) ) { 73 var_dump( fscanf($file_handle,$octal_format) ); 74 } 75 $counter++; 76} 77 78echo "\n*** Done ***"; 79?> 80--CLEAN-- 81<?php 82$file_path = __DIR__; 83$filename = "$file_path/fscanf_variation28.tmp"; 84unlink($filename); 85?> 86--EXPECTF-- 87*** Test fscanf(): different octal format types with float values *** 88 89-- iteration 1 -- 90array(1) { 91 [0]=> 92 int(-9020) 93} 94array(1) { 95 [0]=> 96 int(9020) 97} 98array(1) { 99 [0]=> 100 int(-9020) 101} 102array(1) { 103 [0]=> 104 int(1821) 105} 106array(1) { 107 [0]=> 108 int(9020) 109} 110array(1) { 111 [0]=> 112 int(-9020) 113} 114array(1) { 115 [0]=> 116 int(0) 117} 118array(1) { 119 [0]=> 120 int(0) 121} 122array(1) { 123 [0]=> 124 int(1) 125} 126array(1) { 127 [0]=> 128 int(32768) 129} 130array(1) { 131 [0]=> 132 int(-262144) 133} 134array(1) { 135 [0]=> 136 int(16777216) 137} 138array(1) { 139 [0]=> 140 int(-134217728) 141} 142array(1) { 143 [0]=> 144 int(8) 145} 146array(1) { 147 [0]=> 148 int(282624) 149} 150bool(false) 151 152-- iteration 2 -- 153array(1) { 154 [0]=> 155 int(-9020) 156} 157array(1) { 158 [0]=> 159 int(9020) 160} 161array(1) { 162 [0]=> 163 int(-9020) 164} 165array(1) { 166 [0]=> 167 int(1821) 168} 169array(1) { 170 [0]=> 171 int(9020) 172} 173array(1) { 174 [0]=> 175 int(-9020) 176} 177array(1) { 178 [0]=> 179 int(0) 180} 181array(1) { 182 [0]=> 183 int(0) 184} 185array(1) { 186 [0]=> 187 int(1) 188} 189array(1) { 190 [0]=> 191 int(32768) 192} 193array(1) { 194 [0]=> 195 int(-262144) 196} 197array(1) { 198 [0]=> 199 int(16777216) 200} 201array(1) { 202 [0]=> 203 int(-134217728) 204} 205array(1) { 206 [0]=> 207 int(8) 208} 209array(1) { 210 [0]=> 211 int(282624) 212} 213bool(false) 214 215-- iteration 3 -- 216array(1) { 217 [0]=> 218 int(-9020) 219} 220array(1) { 221 [0]=> 222 int(9020) 223} 224array(1) { 225 [0]=> 226 int(-9020) 227} 228array(1) { 229 [0]=> 230 int(1821) 231} 232array(1) { 233 [0]=> 234 int(9020) 235} 236array(1) { 237 [0]=> 238 int(-9020) 239} 240array(1) { 241 [0]=> 242 int(0) 243} 244array(1) { 245 [0]=> 246 int(0) 247} 248array(1) { 249 [0]=> 250 int(1) 251} 252array(1) { 253 [0]=> 254 int(32768) 255} 256array(1) { 257 [0]=> 258 int(-262144) 259} 260array(1) { 261 [0]=> 262 int(16777216) 263} 264array(1) { 265 [0]=> 266 int(-134217728) 267} 268array(1) { 269 [0]=> 270 int(8) 271} 272array(1) { 273 [0]=> 274 int(282624) 275} 276bool(false) 277 278-- iteration 4 -- 279array(1) { 280 [0]=> 281 int(-9020) 282} 283array(1) { 284 [0]=> 285 int(9020) 286} 287array(1) { 288 [0]=> 289 int(-9020) 290} 291array(1) { 292 [0]=> 293 int(1821) 294} 295array(1) { 296 [0]=> 297 int(9020) 298} 299array(1) { 300 [0]=> 301 int(-9020) 302} 303array(1) { 304 [0]=> 305 int(0) 306} 307array(1) { 308 [0]=> 309 int(0) 310} 311array(1) { 312 [0]=> 313 int(1) 314} 315array(1) { 316 [0]=> 317 int(32768) 318} 319array(1) { 320 [0]=> 321 int(-262144) 322} 323array(1) { 324 [0]=> 325 int(16777216) 326} 327array(1) { 328 [0]=> 329 int(-134217728) 330} 331array(1) { 332 [0]=> 333 int(8) 334} 335array(1) { 336 [0]=> 337 int(282624) 338} 339bool(false) 340 341-- iteration 5 -- 342array(1) { 343 [0]=> 344 int(-9020) 345} 346array(1) { 347 [0]=> 348 int(9020) 349} 350array(1) { 351 [0]=> 352 int(-9020) 353} 354array(1) { 355 [0]=> 356 int(1821) 357} 358array(1) { 359 [0]=> 360 int(9020) 361} 362array(1) { 363 [0]=> 364 int(-9020) 365} 366array(1) { 367 [0]=> 368 int(0) 369} 370array(1) { 371 [0]=> 372 int(0) 373} 374array(1) { 375 [0]=> 376 int(1) 377} 378array(1) { 379 [0]=> 380 int(32768) 381} 382array(1) { 383 [0]=> 384 int(-262144) 385} 386array(1) { 387 [0]=> 388 int(16777216) 389} 390array(1) { 391 [0]=> 392 int(-134217728) 393} 394array(1) { 395 [0]=> 396 int(8) 397} 398array(1) { 399 [0]=> 400 int(282624) 401} 402bool(false) 403 404-- iteration 6 -- 405array(1) { 406 [0]=> 407 int(-9020) 408} 409array(1) { 410 [0]=> 411 int(9020) 412} 413array(1) { 414 [0]=> 415 int(-9020) 416} 417array(1) { 418 [0]=> 419 int(1821) 420} 421array(1) { 422 [0]=> 423 int(9020) 424} 425array(1) { 426 [0]=> 427 int(-9020) 428} 429array(1) { 430 [0]=> 431 int(0) 432} 433array(1) { 434 [0]=> 435 int(0) 436} 437array(1) { 438 [0]=> 439 int(1) 440} 441array(1) { 442 [0]=> 443 int(32768) 444} 445array(1) { 446 [0]=> 447 int(-262144) 448} 449array(1) { 450 [0]=> 451 int(16777216) 452} 453array(1) { 454 [0]=> 455 int(-134217728) 456} 457array(1) { 458 [0]=> 459 int(8) 460} 461array(1) { 462 [0]=> 463 int(282624) 464} 465bool(false) 466 467-- iteration 7 -- 468 469Warning: fscanf(): Bad scan conversion character " " in %s on line %d 470NULL 471 472Warning: fscanf(): Bad scan conversion character " " in %s on line %d 473NULL 474 475Warning: fscanf(): Bad scan conversion character " " in %s on line %d 476NULL 477 478Warning: fscanf(): Bad scan conversion character " " in %s on line %d 479NULL 480 481Warning: fscanf(): Bad scan conversion character " " in %s on line %d 482NULL 483 484Warning: fscanf(): Bad scan conversion character " " in %s on line %d 485NULL 486 487Warning: fscanf(): Bad scan conversion character " " in %s on line %d 488NULL 489 490Warning: fscanf(): Bad scan conversion character " " in %s on line %d 491NULL 492 493Warning: fscanf(): Bad scan conversion character " " in %s on line %d 494NULL 495 496Warning: fscanf(): Bad scan conversion character " " in %s on line %d 497NULL 498 499Warning: fscanf(): Bad scan conversion character " " in %s on line %d 500NULL 501 502Warning: fscanf(): Bad scan conversion character " " in %s on line %d 503NULL 504 505Warning: fscanf(): Bad scan conversion character " " in %s on line %d 506NULL 507 508Warning: fscanf(): Bad scan conversion character " " in %s on line %d 509NULL 510 511Warning: fscanf(): Bad scan conversion character " " in %s on line %d 512NULL 513bool(false) 514 515-- iteration 8 -- 516array(1) { 517 [0]=> 518 int(-9020) 519} 520array(1) { 521 [0]=> 522 int(9020) 523} 524array(1) { 525 [0]=> 526 int(-9020) 527} 528array(1) { 529 [0]=> 530 int(1821) 531} 532array(1) { 533 [0]=> 534 int(9020) 535} 536array(1) { 537 [0]=> 538 int(-9020) 539} 540array(1) { 541 [0]=> 542 int(0) 543} 544array(1) { 545 [0]=> 546 int(0) 547} 548array(1) { 549 [0]=> 550 int(1) 551} 552array(1) { 553 [0]=> 554 int(32768) 555} 556array(1) { 557 [0]=> 558 int(-262144) 559} 560array(1) { 561 [0]=> 562 int(16777216) 563} 564array(1) { 565 [0]=> 566 int(-134217728) 567} 568array(1) { 569 [0]=> 570 int(8) 571} 572array(1) { 573 [0]=> 574 int(282624) 575} 576bool(false) 577 578-- iteration 9 -- 579array(1) { 580 [0]=> 581 int(-9020) 582} 583array(1) { 584 [0]=> 585 int(9020) 586} 587array(1) { 588 [0]=> 589 int(-9020) 590} 591array(1) { 592 [0]=> 593 int(1821) 594} 595array(1) { 596 [0]=> 597 int(9020) 598} 599array(1) { 600 [0]=> 601 int(-9020) 602} 603array(1) { 604 [0]=> 605 int(0) 606} 607array(1) { 608 [0]=> 609 int(0) 610} 611array(1) { 612 [0]=> 613 int(1) 614} 615array(1) { 616 [0]=> 617 int(32768) 618} 619array(1) { 620 [0]=> 621 int(-262144) 622} 623array(1) { 624 [0]=> 625 int(16777216) 626} 627array(1) { 628 [0]=> 629 int(-134217728) 630} 631array(1) { 632 [0]=> 633 int(8) 634} 635array(1) { 636 [0]=> 637 int(282624) 638} 639bool(false) 640 641-- iteration 10 -- 642array(1) { 643 [0]=> 644 int(-140) 645} 646array(1) { 647 [0]=> 648 int(1127) 649} 650array(1) { 651 [0]=> 652 int(-140) 653} 654array(1) { 655 [0]=> 656 int(1821) 657} 658array(1) { 659 [0]=> 660 int(1127) 661} 662array(1) { 663 [0]=> 664 int(-140) 665} 666array(1) { 667 [0]=> 668 int(0) 669} 670array(1) { 671 [0]=> 672 int(0) 673} 674array(1) { 675 [0]=> 676 int(1) 677} 678array(1) { 679 [0]=> 680 int(512) 681} 682array(1) { 683 [0]=> 684 int(-64) 685} 686array(1) { 687 [0]=> 688 int(512) 689} 690array(1) { 691 [0]=> 692 int(-64) 693} 694array(1) { 695 [0]=> 696 int(8) 697} 698array(1) { 699 [0]=> 700 int(552) 701} 702bool(false) 703 704-- iteration 11 -- 705array(1) { 706 [0]=> 707 int(-9020) 708} 709array(1) { 710 [0]=> 711 int(9020) 712} 713array(1) { 714 [0]=> 715 int(-9020) 716} 717array(1) { 718 [0]=> 719 int(1821) 720} 721array(1) { 722 [0]=> 723 int(9020) 724} 725array(1) { 726 [0]=> 727 int(-9020) 728} 729array(1) { 730 [0]=> 731 int(0) 732} 733array(1) { 734 [0]=> 735 int(0) 736} 737array(1) { 738 [0]=> 739 int(1) 740} 741array(1) { 742 [0]=> 743 int(32768) 744} 745array(1) { 746 [0]=> 747 int(-262144) 748} 749array(1) { 750 [0]=> 751 int(16777216) 752} 753array(1) { 754 [0]=> 755 int(-134217728) 756} 757array(1) { 758 [0]=> 759 int(8) 760} 761array(1) { 762 [0]=> 763 int(282624) 764} 765bool(false) 766 767-- iteration 12 -- 768array(1) { 769 [0]=> 770 NULL 771} 772array(1) { 773 [0]=> 774 string(5) "21474" 775} 776array(1) { 777 [0]=> 778 NULL 779} 780array(1) { 781 [0]=> 782 string(4) "3435" 783} 784array(1) { 785 [0]=> 786 string(5) "21474" 787} 788array(1) { 789 [0]=> 790 NULL 791} 792array(1) { 793 [0]=> 794 string(1) "0" 795} 796array(1) { 797 [0]=> 798 NULL 799} 800array(1) { 801 [0]=> 802 string(1) "1" 803} 804array(1) { 805 [0]=> 806 string(6) "100000" 807} 808array(1) { 809 [0]=> 810 NULL 811} 812array(1) { 813 [0]=> 814 string(9) "100000000" 815} 816array(1) { 817 [0]=> 818 NULL 819} 820array(1) { 821 [0]=> 822 string(2) "10" 823} 824array(1) { 825 [0]=> 826 string(7) "1050000" 827} 828bool(false) 829 830-- iteration 13 -- 831array(0) { 832} 833array(0) { 834} 835array(0) { 836} 837array(0) { 838} 839array(0) { 840} 841array(0) { 842} 843array(0) { 844} 845array(0) { 846} 847array(0) { 848} 849array(0) { 850} 851array(0) { 852} 853array(0) { 854} 855array(0) { 856} 857array(0) { 858} 859array(0) { 860} 861bool(false) 862 863*** Done *** 864