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