Annotation of embedaddon/php/ext/standard/tests/strings/str_replace.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test str_replace() function
! 3: --INI--
! 4: precision=14
! 5: --FILE--
! 6: <?php
! 7: /*
! 8: Prototype: mixed str_replace(mixed $search, mixed $replace,
! 9: mixed $subject [, int &$count]);
! 10: Description: Replace all occurrences of the search string with
! 11: the replacement string
! 12: */
! 13:
! 14: echo "\n*** Testing str_replace() on basic operations ***\n";
! 15:
! 16: var_dump( str_replace("", "", "") );
! 17:
! 18: var_dump( str_replace("e", "b", "test") );
! 19:
! 20: var_dump( str_replace("", "", "", $count) );
! 21: var_dump( $count );
! 22:
! 23: var_dump( str_replace("q", "q", "q", $count) );
! 24: var_dump( $count );
! 25:
! 26: var_dump( str_replace("long string here", "", "", $count) );
! 27: var_dump( $count );
! 28:
! 29: $fp = fopen( __FILE__, "r" );
! 30: $fp_copy = $fp;
! 31: var_dump( str_replace($fp_copy, $fp_copy, $fp_copy, $fp_copy) );
! 32: var_dump( $fp_copy );
! 33: fclose($fp);
! 34:
! 35: echo "\n*** Testing str_replace() with various search values ***";
! 36: $search_arr = array( TRUE, FALSE, 1, 0, -1, "1", "0", "-1", NULL,
! 37: array(), "php", "");
! 38:
! 39: $i = 0;
! 40: /* loop through to replace the matched elements in the array */
! 41: foreach( $search_arr as $value ) {
! 42: echo "\n-- Iteration $i --\n";
! 43: /* replace the string in array */
! 44: var_dump( str_replace($value, "FOUND", $search_arr, $count) );
! 45: var_dump( $count );
! 46: $i++;
! 47: }
! 48:
! 49: echo "\n*** Testing str_replace() with various subjects ***";
! 50: $subject = "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE\000
! 51: \x000\xABCD\0abcd \xXYZ\tabcd $$@#%^&*!~,.:;?: !!Hello, World
! 52: ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)";
! 53:
! 54: /* needles in an array to be compared in the string $string */
! 55: $search_str = array (
! 56: "Hello, World",
! 57: 'Hello, World',
! 58: '!!Hello, World',
! 59: "??Hello, World",
! 60: "$@#%^&*!~,.:;?",
! 61: "123",
! 62: 123,
! 63: "-1.2345",
! 64: -1.2344,
! 65: "abcd",
! 66: 'XYZ',
! 67: NULL,
! 68: "NULL",
! 69: "0",
! 70: 0,
! 71: "",
! 72: " ",
! 73: "\0",
! 74: "\x000",
! 75: "\xABC",
! 76: "\0000",
! 77: ".3",
! 78: TRUE,
! 79: "TRUE",
! 80: "1",
! 81: 1,
! 82: FALSE,
! 83: "FALSE",
! 84: " ",
! 85: " ",
! 86: 'b',
! 87: '\t',
! 88: "\t",
! 89: chr(128).chr(234).chr(65).chr(255).chr(256),
! 90: $subject
! 91: );
! 92:
! 93: /* loop through to get the $string */
! 94: for( $i = 0; $i < count($search_str); $i++ ) {
! 95: echo "\n--- Iteration $i ---";
! 96: echo "\n-- String after replacing the search value is => --\n";
! 97: var_dump( str_replace($search_str[$i], "FOUND", $subject, $count) );
! 98: echo "-- search string has found '$count' times\n";
! 99: }
! 100:
! 101:
! 102: echo "\n*** Testing Miscelleneous input data ***\n";
! 103: /* If replace has fewer values than search, then an empty
! 104: string is used for the rest of replacement values */
! 105: var_dump( str_replace(array("a", "a", "b"),
! 106: array("q", "q"),
! 107: "aaabb", $count
! 108: )
! 109: );
! 110: var_dump($count);
! 111: var_dump( str_replace(array("a", "a", "b"),
! 112: array("q", "q"),
! 113: array("aaa", "bbb", "ccc"),
! 114: $count
! 115: )
! 116: );
! 117: var_dump($count);
! 118:
! 119:
! 120: echo "\n-- Testing objects --\n";
! 121: /* we get "Catchable fatal error: saying Object of class could not be converted
! 122: to string" by default, when an object is passed instead of string:
! 123: The error can be avoided by chosing the __toString magix method as follows: */
! 124:
! 125: class subject
! 126: {
! 127: function __toString() {
! 128: return "Hello, world";
! 129: }
! 130: }
! 131: $obj_subject = new subject;
! 132:
! 133: class search
! 134: {
! 135: function __toString() {
! 136: return "Hello, world";
! 137: }
! 138: }
! 139: $obj_search = new search;
! 140:
! 141: class replace
! 142: {
! 143: function __toString() {
! 144: return "Hello, world";
! 145: }
! 146: }
! 147: $obj_replace = new replace;
! 148:
! 149: var_dump(str_replace("$obj_search", "$obj_replace", "$obj_subject", $count));
! 150: var_dump($count);
! 151:
! 152:
! 153: echo "\n-- Testing arrays --\n";
! 154: var_dump(str_replace(array("a", "a", "b"), "multi", "aaa", $count));
! 155: var_dump($count);
! 156:
! 157: var_dump(str_replace( array("a", "a", "b"),
! 158: array("q", "q", "c"),
! 159: "aaa", $count
! 160: )
! 161: );
! 162: var_dump($count);
! 163:
! 164: var_dump(str_replace( array("a", "a", "b"),
! 165: array("q", "q", "c"),
! 166: array("aaa", "bbb"),
! 167: $count
! 168: )
! 169: );
! 170: var_dump($count);
! 171:
! 172: var_dump(str_replace("a", array("q", "q", "c"), array("aaa", "bbb"), $count));
! 173: var_dump($count);
! 174:
! 175: var_dump(str_replace("a", 1, array("aaa", "bbb"), $count));
! 176: var_dump($count);
! 177:
! 178: var_dump(str_replace(1, 3, array("aaa1", "2bbb"), $count));
! 179: var_dump($count);
! 180:
! 181:
! 182: echo "\n-- Testing Resources --\n";
! 183: $resource1 = fopen( __FILE__, "r" );
! 184: $resource2 = opendir( "." );
! 185: var_dump(str_replace("stream", "FOUND", $resource1, $count));
! 186: var_dump($count);
! 187: var_dump(str_replace("stream", "FOUND", $resource2, $count));
! 188: var_dump($count);
! 189:
! 190:
! 191: echo "\n-- Testing a longer and heredoc string --\n";
! 192: $string = <<<EOD
! 193: abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
! 194: abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
! 195: abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
! 196: abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
! 197: abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
! 198: abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
! 199: abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
! 200: @#$%^&**&^%$#@!~:())))((((&&&**%$###@@@!!!~~~~@###$%^&*
! 201: abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
! 202: EOD;
! 203:
! 204: var_dump( str_replace("abcdef", "FOUND", $string, $count) );
! 205: var_dump( $count );
! 206:
! 207: echo "\n-- Testing a heredoc null string --\n";
! 208: $str = <<<EOD
! 209: EOD;
! 210: var_dump( str_replace("", "FOUND", $str, $count) );
! 211: var_dump( $count );
! 212:
! 213:
! 214: echo "\n-- Testing simple and complex syntax strings --\n";
! 215: $str = 'world';
! 216:
! 217: /* Simple syntax */
! 218: var_dump( str_replace("world", "FOUND", "$str") );
! 219: var_dump( str_replace("world'S", "FOUND", "$str'S") );
! 220: var_dump( str_replace("worldS", "FOUND", "$strS") );
! 221:
! 222: /* String with curly braces, complex syntax */
! 223: var_dump( str_replace("worldS", "FOUND", "${str}S") );
! 224: var_dump( str_replace("worldS", "FOUND", "{$str}S") );
! 225:
! 226:
! 227: echo "\n*** Testing error conditions ***";
! 228: /* Invalid arguments */
! 229: var_dump( str_replace() );
! 230: var_dump( str_replace("") );
! 231: var_dump( str_replace(NULL) );
! 232: var_dump( str_replace(1, 2) );
! 233: var_dump( str_replace(1,2,3,$var,5) );
! 234:
! 235: fclose($resource1);
! 236: closedir($resource2);
! 237: echo "Done\n";
! 238:
! 239: ?>
! 240: --EXPECTF--
! 241: *** Testing str_replace() on basic operations ***
! 242: string(0) ""
! 243: string(4) "tbst"
! 244: string(0) ""
! 245: int(0)
! 246: string(1) "q"
! 247: int(1)
! 248: string(0) ""
! 249: int(0)
! 250: string(%d) "Resource id #%d"
! 251: int(1)
! 252:
! 253: *** Testing str_replace() with various search values ***
! 254: -- Iteration 0 --
! 255: array(12) {
! 256: [0]=>
! 257: string(5) "FOUND"
! 258: [1]=>
! 259: string(0) ""
! 260: [2]=>
! 261: string(5) "FOUND"
! 262: [3]=>
! 263: string(1) "0"
! 264: [4]=>
! 265: string(6) "-FOUND"
! 266: [5]=>
! 267: string(5) "FOUND"
! 268: [6]=>
! 269: string(1) "0"
! 270: [7]=>
! 271: string(6) "-FOUND"
! 272: [8]=>
! 273: string(0) ""
! 274: [9]=>
! 275: array(0) {
! 276: }
! 277: [10]=>
! 278: string(3) "php"
! 279: [11]=>
! 280: string(0) ""
! 281: }
! 282: int(5)
! 283:
! 284: -- Iteration 1 --
! 285: array(12) {
! 286: [0]=>
! 287: string(1) "1"
! 288: [1]=>
! 289: string(0) ""
! 290: [2]=>
! 291: string(1) "1"
! 292: [3]=>
! 293: string(1) "0"
! 294: [4]=>
! 295: string(2) "-1"
! 296: [5]=>
! 297: string(1) "1"
! 298: [6]=>
! 299: string(1) "0"
! 300: [7]=>
! 301: string(2) "-1"
! 302: [8]=>
! 303: string(0) ""
! 304: [9]=>
! 305: array(0) {
! 306: }
! 307: [10]=>
! 308: string(3) "php"
! 309: [11]=>
! 310: string(0) ""
! 311: }
! 312: int(0)
! 313:
! 314: -- Iteration 2 --
! 315: array(12) {
! 316: [0]=>
! 317: string(5) "FOUND"
! 318: [1]=>
! 319: string(0) ""
! 320: [2]=>
! 321: string(5) "FOUND"
! 322: [3]=>
! 323: string(1) "0"
! 324: [4]=>
! 325: string(6) "-FOUND"
! 326: [5]=>
! 327: string(5) "FOUND"
! 328: [6]=>
! 329: string(1) "0"
! 330: [7]=>
! 331: string(6) "-FOUND"
! 332: [8]=>
! 333: string(0) ""
! 334: [9]=>
! 335: array(0) {
! 336: }
! 337: [10]=>
! 338: string(3) "php"
! 339: [11]=>
! 340: string(0) ""
! 341: }
! 342: int(5)
! 343:
! 344: -- Iteration 3 --
! 345: array(12) {
! 346: [0]=>
! 347: string(1) "1"
! 348: [1]=>
! 349: string(0) ""
! 350: [2]=>
! 351: string(1) "1"
! 352: [3]=>
! 353: string(5) "FOUND"
! 354: [4]=>
! 355: string(2) "-1"
! 356: [5]=>
! 357: string(1) "1"
! 358: [6]=>
! 359: string(5) "FOUND"
! 360: [7]=>
! 361: string(2) "-1"
! 362: [8]=>
! 363: string(0) ""
! 364: [9]=>
! 365: array(0) {
! 366: }
! 367: [10]=>
! 368: string(3) "php"
! 369: [11]=>
! 370: string(0) ""
! 371: }
! 372: int(2)
! 373:
! 374: -- Iteration 4 --
! 375: array(12) {
! 376: [0]=>
! 377: string(1) "1"
! 378: [1]=>
! 379: string(0) ""
! 380: [2]=>
! 381: string(1) "1"
! 382: [3]=>
! 383: string(1) "0"
! 384: [4]=>
! 385: string(5) "FOUND"
! 386: [5]=>
! 387: string(1) "1"
! 388: [6]=>
! 389: string(1) "0"
! 390: [7]=>
! 391: string(5) "FOUND"
! 392: [8]=>
! 393: string(0) ""
! 394: [9]=>
! 395: array(0) {
! 396: }
! 397: [10]=>
! 398: string(3) "php"
! 399: [11]=>
! 400: string(0) ""
! 401: }
! 402: int(2)
! 403:
! 404: -- Iteration 5 --
! 405: array(12) {
! 406: [0]=>
! 407: string(5) "FOUND"
! 408: [1]=>
! 409: string(0) ""
! 410: [2]=>
! 411: string(5) "FOUND"
! 412: [3]=>
! 413: string(1) "0"
! 414: [4]=>
! 415: string(6) "-FOUND"
! 416: [5]=>
! 417: string(5) "FOUND"
! 418: [6]=>
! 419: string(1) "0"
! 420: [7]=>
! 421: string(6) "-FOUND"
! 422: [8]=>
! 423: string(0) ""
! 424: [9]=>
! 425: array(0) {
! 426: }
! 427: [10]=>
! 428: string(3) "php"
! 429: [11]=>
! 430: string(0) ""
! 431: }
! 432: int(5)
! 433:
! 434: -- Iteration 6 --
! 435: array(12) {
! 436: [0]=>
! 437: string(1) "1"
! 438: [1]=>
! 439: string(0) ""
! 440: [2]=>
! 441: string(1) "1"
! 442: [3]=>
! 443: string(5) "FOUND"
! 444: [4]=>
! 445: string(2) "-1"
! 446: [5]=>
! 447: string(1) "1"
! 448: [6]=>
! 449: string(5) "FOUND"
! 450: [7]=>
! 451: string(2) "-1"
! 452: [8]=>
! 453: string(0) ""
! 454: [9]=>
! 455: array(0) {
! 456: }
! 457: [10]=>
! 458: string(3) "php"
! 459: [11]=>
! 460: string(0) ""
! 461: }
! 462: int(2)
! 463:
! 464: -- Iteration 7 --
! 465: array(12) {
! 466: [0]=>
! 467: string(1) "1"
! 468: [1]=>
! 469: string(0) ""
! 470: [2]=>
! 471: string(1) "1"
! 472: [3]=>
! 473: string(1) "0"
! 474: [4]=>
! 475: string(5) "FOUND"
! 476: [5]=>
! 477: string(1) "1"
! 478: [6]=>
! 479: string(1) "0"
! 480: [7]=>
! 481: string(5) "FOUND"
! 482: [8]=>
! 483: string(0) ""
! 484: [9]=>
! 485: array(0) {
! 486: }
! 487: [10]=>
! 488: string(3) "php"
! 489: [11]=>
! 490: string(0) ""
! 491: }
! 492: int(2)
! 493:
! 494: -- Iteration 8 --
! 495: array(12) {
! 496: [0]=>
! 497: string(1) "1"
! 498: [1]=>
! 499: string(0) ""
! 500: [2]=>
! 501: string(1) "1"
! 502: [3]=>
! 503: string(1) "0"
! 504: [4]=>
! 505: string(2) "-1"
! 506: [5]=>
! 507: string(1) "1"
! 508: [6]=>
! 509: string(1) "0"
! 510: [7]=>
! 511: string(2) "-1"
! 512: [8]=>
! 513: string(0) ""
! 514: [9]=>
! 515: array(0) {
! 516: }
! 517: [10]=>
! 518: string(3) "php"
! 519: [11]=>
! 520: string(0) ""
! 521: }
! 522: int(0)
! 523:
! 524: -- Iteration 9 --
! 525: array(12) {
! 526: [0]=>
! 527: string(1) "1"
! 528: [1]=>
! 529: string(0) ""
! 530: [2]=>
! 531: string(1) "1"
! 532: [3]=>
! 533: string(1) "0"
! 534: [4]=>
! 535: string(2) "-1"
! 536: [5]=>
! 537: string(1) "1"
! 538: [6]=>
! 539: string(1) "0"
! 540: [7]=>
! 541: string(2) "-1"
! 542: [8]=>
! 543: string(0) ""
! 544: [9]=>
! 545: array(0) {
! 546: }
! 547: [10]=>
! 548: string(3) "php"
! 549: [11]=>
! 550: string(0) ""
! 551: }
! 552: int(0)
! 553:
! 554: -- Iteration 10 --
! 555: array(12) {
! 556: [0]=>
! 557: string(1) "1"
! 558: [1]=>
! 559: string(0) ""
! 560: [2]=>
! 561: string(1) "1"
! 562: [3]=>
! 563: string(1) "0"
! 564: [4]=>
! 565: string(2) "-1"
! 566: [5]=>
! 567: string(1) "1"
! 568: [6]=>
! 569: string(1) "0"
! 570: [7]=>
! 571: string(2) "-1"
! 572: [8]=>
! 573: string(0) ""
! 574: [9]=>
! 575: array(0) {
! 576: }
! 577: [10]=>
! 578: string(5) "FOUND"
! 579: [11]=>
! 580: string(0) ""
! 581: }
! 582: int(1)
! 583:
! 584: -- Iteration 11 --
! 585: array(12) {
! 586: [0]=>
! 587: string(1) "1"
! 588: [1]=>
! 589: string(0) ""
! 590: [2]=>
! 591: string(1) "1"
! 592: [3]=>
! 593: string(1) "0"
! 594: [4]=>
! 595: string(2) "-1"
! 596: [5]=>
! 597: string(1) "1"
! 598: [6]=>
! 599: string(1) "0"
! 600: [7]=>
! 601: string(2) "-1"
! 602: [8]=>
! 603: string(0) ""
! 604: [9]=>
! 605: array(0) {
! 606: }
! 607: [10]=>
! 608: string(3) "php"
! 609: [11]=>
! 610: string(0) ""
! 611: }
! 612: int(0)
! 613:
! 614: *** Testing str_replace() with various subjects ***
! 615: --- Iteration 0 ---
! 616: -- String after replacing the search value is => --
! 617: string(177) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE
! 618: 0«CD abcd \xXYZ abcd $$@#%^&*!~,.:;?: !!FOUND
! 619: ?FOUND chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 620: -- search string has found '2' times
! 621:
! 622: --- Iteration 1 ---
! 623: -- String after replacing the search value is => --
! 624: string(177) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE
! 625: 0«CD abcd \xXYZ abcd $$@#%^&*!~,.:;?: !!FOUND
! 626: ?FOUND chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 627: -- search string has found '2' times
! 628:
! 629: --- Iteration 2 ---
! 630: -- String after replacing the search value is => --
! 631: string(182) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE
! 632: 0«CD abcd \xXYZ abcd $$@#%^&*!~,.:;?: FOUND
! 633: ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 634: -- search string has found '1' times
! 635:
! 636: --- Iteration 3 ---
! 637: -- String after replacing the search value is => --
! 638: string(191) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE
! 639: 0«CD abcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World
! 640: ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 641: -- search string has found '0' times
! 642:
! 643: --- Iteration 4 ---
! 644: -- String after replacing the search value is => --
! 645: string(182) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE
! 646: 0«CD abcd \xXYZ abcd $FOUND: !!Hello, World
! 647: ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 648: -- search string has found '1' times
! 649:
! 650: --- Iteration 5 ---
! 651: -- String after replacing the search value is => --
! 652: string(191) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE
! 653: 0«CD abcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World
! 654: ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 655: -- search string has found '0' times
! 656:
! 657: --- Iteration 6 ---
! 658: -- String after replacing the search value is => --
! 659: string(191) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE
! 660: 0«CD abcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World
! 661: ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 662: -- search string has found '0' times
! 663:
! 664: --- Iteration 7 ---
! 665: -- String after replacing the search value is => --
! 666: string(189) "Hello, world,0120333.3445FOUND67 NULL TRUE FALSE
! 667: 0«CD abcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World
! 668: ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 669: -- search string has found '1' times
! 670:
! 671: --- Iteration 8 ---
! 672: -- String after replacing the search value is => --
! 673: string(191) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE
! 674: 0«CD abcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World
! 675: ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 676: -- search string has found '0' times
! 677:
! 678: --- Iteration 9 ---
! 679: -- String after replacing the search value is => --
! 680: string(193) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE
! 681: 0«CD FOUND \xXYZ FOUND $$@#%^&*!~,.:;?: !!Hello, World
! 682: ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 683: -- search string has found '2' times
! 684:
! 685: --- Iteration 10 ---
! 686: -- String after replacing the search value is => --
! 687: string(193) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE
! 688: 0«CD abcd \xFOUND abcd $$@#%^&*!~,.:;?: !!Hello, World
! 689: ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 690: -- search string has found '1' times
! 691:
! 692: --- Iteration 11 ---
! 693: -- String after replacing the search value is => --
! 694: string(191) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE
! 695: 0«CD abcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World
! 696: ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 697: -- search string has found '0' times
! 698:
! 699: --- Iteration 12 ---
! 700: -- String after replacing the search value is => --
! 701: string(192) "Hello, world,0120333.3445-1.234567 FOUND TRUE FALSE
! 702: 0«CD abcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World
! 703: ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 704: -- search string has found '1' times
! 705:
! 706: --- Iteration 13 ---
! 707: -- String after replacing the search value is => --
! 708: string(207) "Hello, world,FOUND12FOUND333.3445-1.234567 NULL TRUE FALSE
! 709: FOUND«CD abcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World
! 710: ?Hello, World chr(FOUND).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 711: -- search string has found '4' times
! 712:
! 713: --- Iteration 14 ---
! 714: -- String after replacing the search value is => --
! 715: string(207) "Hello, world,FOUND12FOUND333.3445-1.234567 NULL TRUE FALSE
! 716: FOUND«CD abcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World
! 717: ?Hello, World chr(FOUND).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 718: -- search string has found '4' times
! 719:
! 720: --- Iteration 15 ---
! 721: -- String after replacing the search value is => --
! 722: string(191) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE
! 723: 0«CD abcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World
! 724: ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 725: -- search string has found '0' times
! 726:
! 727: --- Iteration 16 ---
! 728: -- String after replacing the search value is => --
! 729: string(307) "Hello,FOUNDworld,0120333.3445-1.234567FOUNDFOUNDFOUNDFOUNDFOUNDFOUNDFOUNDFOUNDFOUNDFOUNDNULLFOUNDTRUEFOUNDFALSE
! 730: FOUND FOUNDFOUNDFOUNDFOUND 0«CD abcdFOUND\xXYZ abcdFOUND$$@#%^&*!~,.:;?:FOUND!!Hello,FOUNDWorldFOUND
! 731: FOUNDFOUNDFOUNDFOUND?Hello,FOUNDWorldFOUNDchr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 732: -- search string has found '29' times
! 733:
! 734: --- Iteration 17 ---
! 735: -- String after replacing the search value is => --
! 736: string(203) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSEFOUND
! 737: FOUND0«CDFOUNDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World
! 738: ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 739: -- search string has found '3' times
! 740:
! 741: --- Iteration 18 ---
! 742: -- String after replacing the search value is => --
! 743: string(194) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE
! 744: FOUND«CD abcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World
! 745: ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 746: -- search string has found '1' times
! 747:
! 748: --- Iteration 19 ---
! 749: -- String after replacing the search value is => --
! 750: string(194) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE
! 751: 0FOUNDD abcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World
! 752: ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 753: -- search string has found '1' times
! 754:
! 755: --- Iteration 20 ---
! 756: -- String after replacing the search value is => --
! 757: string(194) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE
! 758: FOUND«CD abcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World
! 759: ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 760: -- search string has found '1' times
! 761:
! 762: --- Iteration 21 ---
! 763: -- String after replacing the search value is => --
! 764: string(194) "Hello, world,0120333FOUND445-1.234567 NULL TRUE FALSE
! 765: 0«CD abcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World
! 766: ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 767: -- search string has found '1' times
! 768:
! 769: --- Iteration 22 ---
! 770: -- String after replacing the search value is => --
! 771: string(203) "Hello, world,0FOUND20333.3445-FOUND.234567 NULL TRUE FALSE
! 772: 0«CD abcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World
! 773: ?Hello, World chr(0).chr(FOUND28).chr(234).chr(65).chr(255).chr(256)"
! 774: -- search string has found '3' times
! 775:
! 776: --- Iteration 23 ---
! 777: -- String after replacing the search value is => --
! 778: string(192) "Hello, world,0120333.3445-1.234567 NULL FOUND FALSE
! 779: 0«CD abcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World
! 780: ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 781: -- search string has found '1' times
! 782:
! 783: --- Iteration 24 ---
! 784: -- String after replacing the search value is => --
! 785: string(203) "Hello, world,0FOUND20333.3445-FOUND.234567 NULL TRUE FALSE
! 786: 0«CD abcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World
! 787: ?Hello, World chr(0).chr(FOUND28).chr(234).chr(65).chr(255).chr(256)"
! 788: -- search string has found '3' times
! 789:
! 790: --- Iteration 25 ---
! 791: -- String after replacing the search value is => --
! 792: string(203) "Hello, world,0FOUND20333.3445-FOUND.234567 NULL TRUE FALSE
! 793: 0«CD abcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World
! 794: ?Hello, World chr(0).chr(FOUND28).chr(234).chr(65).chr(255).chr(256)"
! 795: -- search string has found '3' times
! 796:
! 797: --- Iteration 26 ---
! 798: -- String after replacing the search value is => --
! 799: string(191) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE
! 800: 0«CD abcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World
! 801: ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 802: -- search string has found '0' times
! 803:
! 804: --- Iteration 27 ---
! 805: -- String after replacing the search value is => --
! 806: string(191) "Hello, world,0120333.3445-1.234567 NULL TRUE FOUND
! 807: 0«CD abcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World
! 808: ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 809: -- search string has found '1' times
! 810:
! 811: --- Iteration 28 ---
! 812: -- String after replacing the search value is => --
! 813: string(307) "Hello,FOUNDworld,0120333.3445-1.234567FOUNDFOUNDFOUNDFOUNDFOUNDFOUNDFOUNDFOUNDFOUNDFOUNDNULLFOUNDTRUEFOUNDFALSE
! 814: FOUND FOUNDFOUNDFOUNDFOUND 0«CD abcdFOUND\xXYZ abcdFOUND$$@#%^&*!~,.:;?:FOUND!!Hello,FOUNDWorldFOUND
! 815: FOUNDFOUNDFOUNDFOUND?Hello,FOUNDWorldFOUNDchr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 816: -- search string has found '29' times
! 817:
! 818: --- Iteration 29 ---
! 819: -- String after replacing the search value is => --
! 820: string(186) "Hello, world,0120333.3445-1.234567FOUNDNULL TRUE FALSE
! 821: 0«CD abcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World
! 822: ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 823: -- search string has found '1' times
! 824:
! 825: --- Iteration 30 ---
! 826: -- String after replacing the search value is => --
! 827: string(199) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE
! 828: 0«CD aFOUNDcd \xXYZ aFOUNDcd $$@#%^&*!~,.:;?: !!Hello, World
! 829: ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 830: -- search string has found '2' times
! 831:
! 832: --- Iteration 31 ---
! 833: -- String after replacing the search value is => --
! 834: string(191) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE
! 835: 0«CD abcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World
! 836: ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)"
! 837: -- search string has found '0' times
! 838:
! 839: --- Iteration 32 ---
! 840: -- String after replacing the search value is => --
! 841: string(203) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE
! 842: FOUND