1--TEST-- 2Test fscanf() function: usage variations - float formats with integer values 3--SKIPIF-- 4<?php 5if (PHP_INT_SIZE != 4) { 6 die("skip this test is for 32bit platform only"); 7} 8?> 9--FILE-- 10<?php 11 12/* 13 Prototype: mixed fscanf ( resource $handle, string $format [, mixed &$...] ); 14 Description: Parses input from a file according to a format 15*/ 16 17/* Test fscanf() to scan integer values using different float format types */ 18 19$file_path = dirname(__FILE__); 20 21echo "*** Test fscanf(): different float format types with integer values ***\n"; 22 23// create a file 24$filename = "$file_path/fscanf_variation9.tmp"; 25$file_handle = fopen($filename, "w"); 26if($file_handle == false) 27 exit("Error:failed to open file $filename"); 28 29// array of float type values 30 31$integer_values = array ( 32 0, 33 1, 34 -1, 35 -2147483648, // max negative integer value 36 -2147483647, 37 2147483647, // max positive integer value 38 2147483640, 39 0x123B, // integer as hexadecimal 40 0x12ab, 41 0Xfff, 42 0XFA, 43 -0x80000000, // max negative integer as hexadecimal 44 0x7fffffff, // max positive integer as hexadecimal 45 0x7FFFFFFF, // max positive integer as hexadecimal 46 0123, // integer as octal 47 01, // should be quivalent to octal 1 48 -020000000000, // max negative integer as octal 49 017777777777 // max positive integer as octal 50); 51 52$float_formats = array( "%f", "%hf", "%lf", "%Lf", " %f", "%f ", "% f", "\t%f", "\n%f", "%4f", "%30f", "%[0-9]", "%*f"); 53 54$counter = 1; 55 56// writing to the file 57foreach($integer_values as $value) { 58 @fprintf($file_handle, $value); 59 @fprintf($file_handle, "\n"); 60} 61// closing the file 62fclose($file_handle); 63 64// opening the file for reading 65$file_handle = fopen($filename, "r"); 66if($file_handle == false) { 67 exit("Error:failed to open file $filename"); 68} 69 70$counter = 1; 71// reading the values from file using different float formats 72foreach($float_formats as $float_format) { 73 // rewind the file so that for every foreach iteration the file pointer starts from bof 74 rewind($file_handle); 75 echo "\n-- iteration $counter --\n"; 76 while( !feof($file_handle) ) { 77 var_dump( fscanf($file_handle,$float_format) ); 78 } 79 $counter++; 80} 81 82echo "\n*** Done ***"; 83?> 84--CLEAN-- 85<?php 86$file_path = dirname(__FILE__); 87$filename = "$file_path/fscanf_variation9.tmp"; 88unlink($filename); 89?> 90--EXPECTF-- 91*** Test fscanf(): different float format types with integer values *** 92 93-- iteration 1 -- 94array(1) { 95 [0]=> 96 float(0) 97} 98array(1) { 99 [0]=> 100 float(1) 101} 102array(1) { 103 [0]=> 104 float(-1) 105} 106array(1) { 107 [0]=> 108 float(-2147483648) 109} 110array(1) { 111 [0]=> 112 float(-2147483647) 113} 114array(1) { 115 [0]=> 116 float(2147483647) 117} 118array(1) { 119 [0]=> 120 float(2147483640) 121} 122array(1) { 123 [0]=> 124 float(4667) 125} 126array(1) { 127 [0]=> 128 float(4779) 129} 130array(1) { 131 [0]=> 132 float(4095) 133} 134array(1) { 135 [0]=> 136 float(250) 137} 138array(1) { 139 [0]=> 140 float(-2147483648) 141} 142array(1) { 143 [0]=> 144 float(2147483647) 145} 146array(1) { 147 [0]=> 148 float(2147483647) 149} 150array(1) { 151 [0]=> 152 float(83) 153} 154array(1) { 155 [0]=> 156 float(1) 157} 158array(1) { 159 [0]=> 160 float(-2147483648) 161} 162array(1) { 163 [0]=> 164 float(2147483647) 165} 166bool(false) 167 168-- iteration 2 -- 169array(1) { 170 [0]=> 171 float(0) 172} 173array(1) { 174 [0]=> 175 float(1) 176} 177array(1) { 178 [0]=> 179 float(-1) 180} 181array(1) { 182 [0]=> 183 float(-2147483648) 184} 185array(1) { 186 [0]=> 187 float(-2147483647) 188} 189array(1) { 190 [0]=> 191 float(2147483647) 192} 193array(1) { 194 [0]=> 195 float(2147483640) 196} 197array(1) { 198 [0]=> 199 float(4667) 200} 201array(1) { 202 [0]=> 203 float(4779) 204} 205array(1) { 206 [0]=> 207 float(4095) 208} 209array(1) { 210 [0]=> 211 float(250) 212} 213array(1) { 214 [0]=> 215 float(-2147483648) 216} 217array(1) { 218 [0]=> 219 float(2147483647) 220} 221array(1) { 222 [0]=> 223 float(2147483647) 224} 225array(1) { 226 [0]=> 227 float(83) 228} 229array(1) { 230 [0]=> 231 float(1) 232} 233array(1) { 234 [0]=> 235 float(-2147483648) 236} 237array(1) { 238 [0]=> 239 float(2147483647) 240} 241bool(false) 242 243-- iteration 3 -- 244array(1) { 245 [0]=> 246 float(0) 247} 248array(1) { 249 [0]=> 250 float(1) 251} 252array(1) { 253 [0]=> 254 float(-1) 255} 256array(1) { 257 [0]=> 258 float(-2147483648) 259} 260array(1) { 261 [0]=> 262 float(-2147483647) 263} 264array(1) { 265 [0]=> 266 float(2147483647) 267} 268array(1) { 269 [0]=> 270 float(2147483640) 271} 272array(1) { 273 [0]=> 274 float(4667) 275} 276array(1) { 277 [0]=> 278 float(4779) 279} 280array(1) { 281 [0]=> 282 float(4095) 283} 284array(1) { 285 [0]=> 286 float(250) 287} 288array(1) { 289 [0]=> 290 float(-2147483648) 291} 292array(1) { 293 [0]=> 294 float(2147483647) 295} 296array(1) { 297 [0]=> 298 float(2147483647) 299} 300array(1) { 301 [0]=> 302 float(83) 303} 304array(1) { 305 [0]=> 306 float(1) 307} 308array(1) { 309 [0]=> 310 float(-2147483648) 311} 312array(1) { 313 [0]=> 314 float(2147483647) 315} 316bool(false) 317 318-- iteration 4 -- 319array(1) { 320 [0]=> 321 float(0) 322} 323array(1) { 324 [0]=> 325 float(1) 326} 327array(1) { 328 [0]=> 329 float(-1) 330} 331array(1) { 332 [0]=> 333 float(-2147483648) 334} 335array(1) { 336 [0]=> 337 float(-2147483647) 338} 339array(1) { 340 [0]=> 341 float(2147483647) 342} 343array(1) { 344 [0]=> 345 float(2147483640) 346} 347array(1) { 348 [0]=> 349 float(4667) 350} 351array(1) { 352 [0]=> 353 float(4779) 354} 355array(1) { 356 [0]=> 357 float(4095) 358} 359array(1) { 360 [0]=> 361 float(250) 362} 363array(1) { 364 [0]=> 365 float(-2147483648) 366} 367array(1) { 368 [0]=> 369 float(2147483647) 370} 371array(1) { 372 [0]=> 373 float(2147483647) 374} 375array(1) { 376 [0]=> 377 float(83) 378} 379array(1) { 380 [0]=> 381 float(1) 382} 383array(1) { 384 [0]=> 385 float(-2147483648) 386} 387array(1) { 388 [0]=> 389 float(2147483647) 390} 391bool(false) 392 393-- iteration 5 -- 394array(1) { 395 [0]=> 396 float(0) 397} 398array(1) { 399 [0]=> 400 float(1) 401} 402array(1) { 403 [0]=> 404 float(-1) 405} 406array(1) { 407 [0]=> 408 float(-2147483648) 409} 410array(1) { 411 [0]=> 412 float(-2147483647) 413} 414array(1) { 415 [0]=> 416 float(2147483647) 417} 418array(1) { 419 [0]=> 420 float(2147483640) 421} 422array(1) { 423 [0]=> 424 float(4667) 425} 426array(1) { 427 [0]=> 428 float(4779) 429} 430array(1) { 431 [0]=> 432 float(4095) 433} 434array(1) { 435 [0]=> 436 float(250) 437} 438array(1) { 439 [0]=> 440 float(-2147483648) 441} 442array(1) { 443 [0]=> 444 float(2147483647) 445} 446array(1) { 447 [0]=> 448 float(2147483647) 449} 450array(1) { 451 [0]=> 452 float(83) 453} 454array(1) { 455 [0]=> 456 float(1) 457} 458array(1) { 459 [0]=> 460 float(-2147483648) 461} 462array(1) { 463 [0]=> 464 float(2147483647) 465} 466bool(false) 467 468-- iteration 6 -- 469array(1) { 470 [0]=> 471 float(0) 472} 473array(1) { 474 [0]=> 475 float(1) 476} 477array(1) { 478 [0]=> 479 float(-1) 480} 481array(1) { 482 [0]=> 483 float(-2147483648) 484} 485array(1) { 486 [0]=> 487 float(-2147483647) 488} 489array(1) { 490 [0]=> 491 float(2147483647) 492} 493array(1) { 494 [0]=> 495 float(2147483640) 496} 497array(1) { 498 [0]=> 499 float(4667) 500} 501array(1) { 502 [0]=> 503 float(4779) 504} 505array(1) { 506 [0]=> 507 float(4095) 508} 509array(1) { 510 [0]=> 511 float(250) 512} 513array(1) { 514 [0]=> 515 float(-2147483648) 516} 517array(1) { 518 [0]=> 519 float(2147483647) 520} 521array(1) { 522 [0]=> 523 float(2147483647) 524} 525array(1) { 526 [0]=> 527 float(83) 528} 529array(1) { 530 [0]=> 531 float(1) 532} 533array(1) { 534 [0]=> 535 float(-2147483648) 536} 537array(1) { 538 [0]=> 539 float(2147483647) 540} 541bool(false) 542 543-- iteration 7 -- 544 545Warning: fscanf(): Bad scan conversion character " " in %s on line %d 546NULL 547 548Warning: fscanf(): Bad scan conversion character " " in %s on line %d 549NULL 550 551Warning: fscanf(): Bad scan conversion character " " in %s on line %d 552NULL 553 554Warning: fscanf(): Bad scan conversion character " " in %s on line %d 555NULL 556 557Warning: fscanf(): Bad scan conversion character " " in %s on line %d 558NULL 559 560Warning: fscanf(): Bad scan conversion character " " in %s on line %d 561NULL 562 563Warning: fscanf(): Bad scan conversion character " " in %s on line %d 564NULL 565 566Warning: fscanf(): Bad scan conversion character " " in %s on line %d 567NULL 568 569Warning: fscanf(): Bad scan conversion character " " in %s on line %d 570NULL 571 572Warning: fscanf(): Bad scan conversion character " " in %s on line %d 573NULL 574 575Warning: fscanf(): Bad scan conversion character " " in %s on line %d 576NULL 577 578Warning: fscanf(): Bad scan conversion character " " in %s on line %d 579NULL 580 581Warning: fscanf(): Bad scan conversion character " " in %s on line %d 582NULL 583 584Warning: fscanf(): Bad scan conversion character " " in %s on line %d 585NULL 586 587Warning: fscanf(): Bad scan conversion character " " in %s on line %d 588NULL 589 590Warning: fscanf(): Bad scan conversion character " " in %s on line %d 591NULL 592 593Warning: fscanf(): Bad scan conversion character " " in %s on line %d 594NULL 595 596Warning: fscanf(): Bad scan conversion character " " in %s on line %d 597NULL 598bool(false) 599 600-- iteration 8 -- 601array(1) { 602 [0]=> 603 float(0) 604} 605array(1) { 606 [0]=> 607 float(1) 608} 609array(1) { 610 [0]=> 611 float(-1) 612} 613array(1) { 614 [0]=> 615 float(-2147483648) 616} 617array(1) { 618 [0]=> 619 float(-2147483647) 620} 621array(1) { 622 [0]=> 623 float(2147483647) 624} 625array(1) { 626 [0]=> 627 float(2147483640) 628} 629array(1) { 630 [0]=> 631 float(4667) 632} 633array(1) { 634 [0]=> 635 float(4779) 636} 637array(1) { 638 [0]=> 639 float(4095) 640} 641array(1) { 642 [0]=> 643 float(250) 644} 645array(1) { 646 [0]=> 647 float(-2147483648) 648} 649array(1) { 650 [0]=> 651 float(2147483647) 652} 653array(1) { 654 [0]=> 655 float(2147483647) 656} 657array(1) { 658 [0]=> 659 float(83) 660} 661array(1) { 662 [0]=> 663 float(1) 664} 665array(1) { 666 [0]=> 667 float(-2147483648) 668} 669array(1) { 670 [0]=> 671 float(2147483647) 672} 673bool(false) 674 675-- iteration 9 -- 676array(1) { 677 [0]=> 678 float(0) 679} 680array(1) { 681 [0]=> 682 float(1) 683} 684array(1) { 685 [0]=> 686 float(-1) 687} 688array(1) { 689 [0]=> 690 float(-2147483648) 691} 692array(1) { 693 [0]=> 694 float(-2147483647) 695} 696array(1) { 697 [0]=> 698 float(2147483647) 699} 700array(1) { 701 [0]=> 702 float(2147483640) 703} 704array(1) { 705 [0]=> 706 float(4667) 707} 708array(1) { 709 [0]=> 710 float(4779) 711} 712array(1) { 713 [0]=> 714 float(4095) 715} 716array(1) { 717 [0]=> 718 float(250) 719} 720array(1) { 721 [0]=> 722 float(-2147483648) 723} 724array(1) { 725 [0]=> 726 float(2147483647) 727} 728array(1) { 729 [0]=> 730 float(2147483647) 731} 732array(1) { 733 [0]=> 734 float(83) 735} 736array(1) { 737 [0]=> 738 float(1) 739} 740array(1) { 741 [0]=> 742 float(-2147483648) 743} 744array(1) { 745 [0]=> 746 float(2147483647) 747} 748bool(false) 749 750-- iteration 10 -- 751array(1) { 752 [0]=> 753 float(0) 754} 755array(1) { 756 [0]=> 757 float(1) 758} 759array(1) { 760 [0]=> 761 float(-1) 762} 763array(1) { 764 [0]=> 765 float(-214) 766} 767array(1) { 768 [0]=> 769 float(-214) 770} 771array(1) { 772 [0]=> 773 float(2147) 774} 775array(1) { 776 [0]=> 777 float(2147) 778} 779array(1) { 780 [0]=> 781 float(4667) 782} 783array(1) { 784 [0]=> 785 float(4779) 786} 787array(1) { 788 [0]=> 789 float(4095) 790} 791array(1) { 792 [0]=> 793 float(250) 794} 795array(1) { 796 [0]=> 797 float(-214) 798} 799array(1) { 800 [0]=> 801 float(2147) 802} 803array(1) { 804 [0]=> 805 float(2147) 806} 807array(1) { 808 [0]=> 809 float(83) 810} 811array(1) { 812 [0]=> 813 float(1) 814} 815array(1) { 816 [0]=> 817 float(-214) 818} 819array(1) { 820 [0]=> 821 float(2147) 822} 823bool(false) 824 825-- iteration 11 -- 826array(1) { 827 [0]=> 828 float(0) 829} 830array(1) { 831 [0]=> 832 float(1) 833} 834array(1) { 835 [0]=> 836 float(-1) 837} 838array(1) { 839 [0]=> 840 float(-2147483648) 841} 842array(1) { 843 [0]=> 844 float(-2147483647) 845} 846array(1) { 847 [0]=> 848 float(2147483647) 849} 850array(1) { 851 [0]=> 852 float(2147483640) 853} 854array(1) { 855 [0]=> 856 float(4667) 857} 858array(1) { 859 [0]=> 860 float(4779) 861} 862array(1) { 863 [0]=> 864 float(4095) 865} 866array(1) { 867 [0]=> 868 float(250) 869} 870array(1) { 871 [0]=> 872 float(-2147483648) 873} 874array(1) { 875 [0]=> 876 float(2147483647) 877} 878array(1) { 879 [0]=> 880 float(2147483647) 881} 882array(1) { 883 [0]=> 884 float(83) 885} 886array(1) { 887 [0]=> 888 float(1) 889} 890array(1) { 891 [0]=> 892 float(-2147483648) 893} 894array(1) { 895 [0]=> 896 float(2147483647) 897} 898bool(false) 899 900-- iteration 12 -- 901array(1) { 902 [0]=> 903 string(1) "0" 904} 905array(1) { 906 [0]=> 907 string(1) "1" 908} 909array(1) { 910 [0]=> 911 NULL 912} 913array(1) { 914 [0]=> 915 NULL 916} 917array(1) { 918 [0]=> 919 NULL 920} 921array(1) { 922 [0]=> 923 string(10) "2147483647" 924} 925array(1) { 926 [0]=> 927 string(10) "2147483640" 928} 929array(1) { 930 [0]=> 931 string(4) "4667" 932} 933array(1) { 934 [0]=> 935 string(4) "4779" 936} 937array(1) { 938 [0]=> 939 string(4) "4095" 940} 941array(1) { 942 [0]=> 943 string(3) "250" 944} 945array(1) { 946 [0]=> 947 NULL 948} 949array(1) { 950 [0]=> 951 string(10) "2147483647" 952} 953array(1) { 954 [0]=> 955 string(10) "2147483647" 956} 957array(1) { 958 [0]=> 959 string(2) "83" 960} 961array(1) { 962 [0]=> 963 string(1) "1" 964} 965array(1) { 966 [0]=> 967 NULL 968} 969array(1) { 970 [0]=> 971 string(10) "2147483647" 972} 973bool(false) 974 975-- iteration 13 -- 976array(0) { 977} 978array(0) { 979} 980array(0) { 981} 982array(0) { 983} 984array(0) { 985} 986array(0) { 987} 988array(0) { 989} 990array(0) { 991} 992array(0) { 993} 994array(0) { 995} 996array(0) { 997} 998array(0) { 999} 1000array(0) { 1001} 1002array(0) { 1003} 1004array(0) { 1005} 1006array(0) { 1007} 1008array(0) { 1009} 1010array(0) { 1011} 1012bool(false) 1013 1014*** Done *** 1015