Annotation of embedaddon/php/ext/standard/tests/strings/explode1.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Test explode() function
        !             3: --INI--
        !             4: error_reporting=2047
        !             5: precision=14
        !             6: --FILE--
        !             7: <?php
        !             8: /* Prototype: array explode ( string $delimiter, string $string [, int $limit] );
        !             9:    Description: Returns an array of strings, each of which is a substring of string 
        !            10:                 formed by splitting it on boundaries formed by the string delimiter.
        !            11:                 If limit is set, the returned array will contain a maximum of limit 
        !            12:                 elements with the last element containing the rest of string.
        !            13: */
        !            14: 
        !            15: echo "*** Testing explode() for basic operations ***\n";
        !            16: $delimiters = array (
        !            17:   "",  // len=0
        !            18:   NULL,
        !            19:   "abcd",  // string
        !            20:   0,  // zero
        !            21:   "0",
        !            22:   TRUE,  // boolean value
        !            23:   FALSE,
        !            24:   -1,  // negative integer
        !            25:   -11.23,  // double
        !            26:   4,  // positive integer
        !            27:   "%",
        !            28: );
        !            29: $string = "1234NULL23abcd00000TRUEFALSE-11.234444true-11.24%PHP%ZEND";
        !            30: /* loop prints an array of strings, each of which is a substring of $string
        !            31:    formed by splitting it on boundaries formed by the string $delimiter. 
        !            32:  */
        !            33: $counter = 1;
        !            34: foreach($delimiters as $delimiter) {
        !            35:   echo "-- Iteration $counter --\n";
        !            36:   var_dump( explode($delimiter, $string, -1) );
        !            37:   var_dump( explode($delimiter, $string, 0) );
        !            38:   var_dump( explode($delimiter, $string, 1) );
        !            39:   var_dump( explode($delimiter, $string, 2) );
        !            40:   $counter++;
        !            41: }
        !            42: 
        !            43: echo "\n*** Testing explode() with miscelleneous input arguments ***\n";
        !            44: 
        !            45: echo "\n-- Passing positive values of Limit to explode() --\n";
        !            46: /* LIMIT=2 */
        !            47: var_dump( explode("::", "mon::tues::wed::thurs::fri::sat::sun", 2) );
        !            48: 
        !            49: /* checking for LIMIT =0,1 */
        !            50: echo "\n-- Passing limit values 0 and 1 to explode() --\n";
        !            51: var_dump( explode(":", "Name:Phone:Address:City:State", 0) );
        !            52: var_dump( explode(":", "Name:Phone:Address:City:State", 1) );
        !            53: 
        !            54: /* to check the maximum limit of string that can be given with limit<=0, 
        !            55:    default size is 50 but increases dynamically */
        !            56: echo "\n*** Testing explode() for maximum limit of string with Limit = -1 ***\n";
        !            57: var_dump( explode(":", "1:2:3:4:5:6:7:7:5:6:7:3:4:5:2:8:9:0:5:5:5:5:5:5:5:5:5:5:5:5:55:5:5:5%:%:%:%:5:5:5:%:%:5:5:5:5:5%:%:%:55:1:1", -1) );
        !            58: 
        !            59: echo "\n*** Testing explode() with string variations as input argument ***\n";
        !            60: /* String with escape characters */
        !            61: echo "\n-- Testing string with escape characters --\n";
        !            62: var_dump( explode("\t\n", "1234\t\n5678\n\t9100") );
        !            63: var_dump( explode("\r", "1234\rabcd\r5678\rrstu") );
        !            64: 
        !            65: /* String with embedded NULL */
        !            66: echo "\n-- Testing string with embedded NULL --\n";
        !            67: var_dump( explode("\x00", "abcd\x0n1234\x0005678\x0000efgh\xijkl") );
        !            68: var_dump( explode("\0", "abcd\0efgh\0ijkl\x00mnop\x000qrst\00uvwx\000yz") );
        !            69: 
        !            70: /* Checking OBJECTS type */
        !            71: echo "\n*** Testing explode() with objects ***\n";
        !            72: class string1 {
        !            73:   public function __toString() {
        !            74:     return "Object";
        !            75:   }
        !            76: }
        !            77: $obj = new string1;
        !            78: var_dump( explode("b", $obj) );
        !            79: 
        !            80: echo "\n*** Testing error conditions ***\n";
        !            81: /* checking for arguments <2 and >3 */
        !            82: var_dump( explode(":", "array1:array2:array3", -1, -33) );
        !            83: var_dump( explode(":") );
        !            84: 
        !            85: echo "Done\n";
        !            86: ?>
        !            87: --EXPECTF--
        !            88: *** Testing explode() for basic operations ***
        !            89: -- Iteration 1 --
        !            90: 
        !            91: Warning: explode(): Empty delimiter in %s on line %d
        !            92: bool(false)
        !            93: 
        !            94: Warning: explode(): Empty delimiter in %s on line %d
        !            95: bool(false)
        !            96: 
        !            97: Warning: explode(): Empty delimiter in %s on line %d
        !            98: bool(false)
        !            99: 
        !           100: Warning: explode(): Empty delimiter in %s on line %d
        !           101: bool(false)
        !           102: -- Iteration 2 --
        !           103: 
        !           104: Warning: explode(): Empty delimiter in %s on line %d
        !           105: bool(false)
        !           106: 
        !           107: Warning: explode(): Empty delimiter in %s on line %d
        !           108: bool(false)
        !           109: 
        !           110: Warning: explode(): Empty delimiter in %s on line %d
        !           111: bool(false)
        !           112: 
        !           113: Warning: explode(): Empty delimiter in %s on line %d
        !           114: bool(false)
        !           115: -- Iteration 3 --
        !           116: array(1) {
        !           117:   [0]=>
        !           118:   string(10) "1234NULL23"
        !           119: }
        !           120: array(1) {
        !           121:   [0]=>
        !           122:   string(57) "1234NULL23abcd00000TRUEFALSE-11.234444true-11.24%PHP%ZEND"
        !           123: }
        !           124: array(1) {
        !           125:   [0]=>
        !           126:   string(57) "1234NULL23abcd00000TRUEFALSE-11.234444true-11.24%PHP%ZEND"
        !           127: }
        !           128: array(2) {
        !           129:   [0]=>
        !           130:   string(10) "1234NULL23"
        !           131:   [1]=>
        !           132:   string(43) "00000TRUEFALSE-11.234444true-11.24%PHP%ZEND"
        !           133: }
        !           134: -- Iteration 4 --
        !           135: array(5) {
        !           136:   [0]=>
        !           137:   string(14) "1234NULL23abcd"
        !           138:   [1]=>
        !           139:   string(0) ""
        !           140:   [2]=>
        !           141:   string(0) ""
        !           142:   [3]=>
        !           143:   string(0) ""
        !           144:   [4]=>
        !           145:   string(0) ""
        !           146: }
        !           147: array(1) {
        !           148:   [0]=>
        !           149:   string(57) "1234NULL23abcd00000TRUEFALSE-11.234444true-11.24%PHP%ZEND"
        !           150: }
        !           151: array(1) {
        !           152:   [0]=>
        !           153:   string(57) "1234NULL23abcd00000TRUEFALSE-11.234444true-11.24%PHP%ZEND"
        !           154: }
        !           155: array(2) {
        !           156:   [0]=>
        !           157:   string(14) "1234NULL23abcd"
        !           158:   [1]=>
        !           159:   string(42) "0000TRUEFALSE-11.234444true-11.24%PHP%ZEND"
        !           160: }
        !           161: -- Iteration 5 --
        !           162: array(5) {
        !           163:   [0]=>
        !           164:   string(14) "1234NULL23abcd"
        !           165:   [1]=>
        !           166:   string(0) ""
        !           167:   [2]=>
        !           168:   string(0) ""
        !           169:   [3]=>
        !           170:   string(0) ""
        !           171:   [4]=>
        !           172:   string(0) ""
        !           173: }
        !           174: array(1) {
        !           175:   [0]=>
        !           176:   string(57) "1234NULL23abcd00000TRUEFALSE-11.234444true-11.24%PHP%ZEND"
        !           177: }
        !           178: array(1) {
        !           179:   [0]=>
        !           180:   string(57) "1234NULL23abcd00000TRUEFALSE-11.234444true-11.24%PHP%ZEND"
        !           181: }
        !           182: array(2) {
        !           183:   [0]=>
        !           184:   string(14) "1234NULL23abcd"
        !           185:   [1]=>
        !           186:   string(42) "0000TRUEFALSE-11.234444true-11.24%PHP%ZEND"
        !           187: }
        !           188: -- Iteration 6 --
        !           189: array(5) {
        !           190:   [0]=>
        !           191:   string(0) ""
        !           192:   [1]=>
        !           193:   string(28) "234NULL23abcd00000TRUEFALSE-"
        !           194:   [2]=>
        !           195:   string(0) ""
        !           196:   [3]=>
        !           197:   string(12) ".234444true-"
        !           198:   [4]=>
        !           199:   string(0) ""
        !           200: }
        !           201: array(1) {
        !           202:   [0]=>
        !           203:   string(57) "1234NULL23abcd00000TRUEFALSE-11.234444true-11.24%PHP%ZEND"
        !           204: }
        !           205: array(1) {
        !           206:   [0]=>
        !           207:   string(57) "1234NULL23abcd00000TRUEFALSE-11.234444true-11.24%PHP%ZEND"
        !           208: }
        !           209: array(2) {
        !           210:   [0]=>
        !           211:   string(0) ""
        !           212:   [1]=>
        !           213:   string(56) "234NULL23abcd00000TRUEFALSE-11.234444true-11.24%PHP%ZEND"
        !           214: }
        !           215: -- Iteration 7 --
        !           216: 
        !           217: Warning: explode(): Empty delimiter in %s on line %d
        !           218: bool(false)
        !           219: 
        !           220: Warning: explode(): Empty delimiter in %s on line %d
        !           221: bool(false)
        !           222: 
        !           223: Warning: explode(): Empty delimiter in %s on line %d
        !           224: bool(false)
        !           225: 
        !           226: Warning: explode(): Empty delimiter in %s on line %d
        !           227: bool(false)
        !           228: -- Iteration 8 --
        !           229: array(2) {
        !           230:   [0]=>
        !           231:   string(28) "1234NULL23abcd00000TRUEFALSE"
        !           232:   [1]=>
        !           233:   string(12) "1.234444true"
        !           234: }
        !           235: array(1) {
        !           236:   [0]=>
        !           237:   string(57) "1234NULL23abcd00000TRUEFALSE-11.234444true-11.24%PHP%ZEND"
        !           238: }
        !           239: array(1) {
        !           240:   [0]=>
        !           241:   string(57) "1234NULL23abcd00000TRUEFALSE-11.234444true-11.24%PHP%ZEND"
        !           242: }
        !           243: array(2) {
        !           244:   [0]=>
        !           245:   string(28) "1234NULL23abcd00000TRUEFALSE"
        !           246:   [1]=>
        !           247:   string(27) "1.234444true-11.24%PHP%ZEND"
        !           248: }
        !           249: -- Iteration 9 --
        !           250: array(1) {
        !           251:   [0]=>
        !           252:   string(28) "1234NULL23abcd00000TRUEFALSE"
        !           253: }
        !           254: array(1) {
        !           255:   [0]=>
        !           256:   string(57) "1234NULL23abcd00000TRUEFALSE-11.234444true-11.24%PHP%ZEND"
        !           257: }
        !           258: array(1) {
        !           259:   [0]=>
        !           260:   string(57) "1234NULL23abcd00000TRUEFALSE-11.234444true-11.24%PHP%ZEND"
        !           261: }
        !           262: array(2) {
        !           263:   [0]=>
        !           264:   string(28) "1234NULL23abcd00000TRUEFALSE"
        !           265:   [1]=>
        !           266:   string(23) "4444true-11.24%PHP%ZEND"
        !           267: }
        !           268: -- Iteration 10 --
        !           269: array(6) {
        !           270:   [0]=>
        !           271:   string(3) "123"
        !           272:   [1]=>
        !           273:   string(30) "NULL23abcd00000TRUEFALSE-11.23"
        !           274:   [2]=>
        !           275:   string(0) ""
        !           276:   [3]=>
        !           277:   string(0) ""
        !           278:   [4]=>
        !           279:   string(0) ""
        !           280:   [5]=>
        !           281:   string(9) "true-11.2"
        !           282: }
        !           283: array(1) {
        !           284:   [0]=>
        !           285:   string(57) "1234NULL23abcd00000TRUEFALSE-11.234444true-11.24%PHP%ZEND"
        !           286: }
        !           287: array(1) {
        !           288:   [0]=>
        !           289:   string(57) "1234NULL23abcd00000TRUEFALSE-11.234444true-11.24%PHP%ZEND"
        !           290: }
        !           291: array(2) {
        !           292:   [0]=>
        !           293:   string(3) "123"
        !           294:   [1]=>
        !           295:   string(53) "NULL23abcd00000TRUEFALSE-11.234444true-11.24%PHP%ZEND"
        !           296: }
        !           297: -- Iteration 11 --
        !           298: array(2) {
        !           299:   [0]=>
        !           300:   string(48) "1234NULL23abcd00000TRUEFALSE-11.234444true-11.24"
        !           301:   [1]=>
        !           302:   string(3) "PHP"
        !           303: }
        !           304: array(1) {
        !           305:   [0]=>
        !           306:   string(57) "1234NULL23abcd00000TRUEFALSE-11.234444true-11.24%PHP%ZEND"
        !           307: }
        !           308: array(1) {
        !           309:   [0]=>
        !           310:   string(57) "1234NULL23abcd00000TRUEFALSE-11.234444true-11.24%PHP%ZEND"
        !           311: }
        !           312: array(2) {
        !           313:   [0]=>
        !           314:   string(48) "1234NULL23abcd00000TRUEFALSE-11.234444true-11.24"
        !           315:   [1]=>
        !           316:   string(8) "PHP%ZEND"
        !           317: }
        !           318: 
        !           319: *** Testing explode() with miscelleneous input arguments ***
        !           320: 
        !           321: -- Passing positive values of Limit to explode() --
        !           322: array(2) {
        !           323:   [0]=>
        !           324:   string(3) "mon"
        !           325:   [1]=>
        !           326:   string(31) "tues::wed::thurs::fri::sat::sun"
        !           327: }
        !           328: 
        !           329: -- Passing limit values 0 and 1 to explode() --
        !           330: array(1) {
        !           331:   [0]=>
        !           332:   string(29) "Name:Phone:Address:City:State"
        !           333: }
        !           334: array(1) {
        !           335:   [0]=>
        !           336:   string(29) "Name:Phone:Address:City:State"
        !           337: }
        !           338: 
        !           339: *** Testing explode() for maximum limit of string with Limit = -1 ***
        !           340: array(51) {
        !           341:   [0]=>
        !           342:   string(1) "1"
        !           343:   [1]=>
        !           344:   string(1) "2"
        !           345:   [2]=>
        !           346:   string(1) "3"
        !           347:   [3]=>
        !           348:   string(1) "4"
        !           349:   [4]=>
        !           350:   string(1) "5"
        !           351:   [5]=>
        !           352:   string(1) "6"
        !           353:   [6]=>
        !           354:   string(1) "7"
        !           355:   [7]=>
        !           356:   string(1) "7"
        !           357:   [8]=>
        !           358:   string(1) "5"
        !           359:   [9]=>
        !           360:   string(1) "6"
        !           361:   [10]=>
        !           362:   string(1) "7"
        !           363:   [11]=>
        !           364:   string(1) "3"
        !           365:   [12]=>
        !           366:   string(1) "4"
        !           367:   [13]=>
        !           368:   string(1) "5"
        !           369:   [14]=>
        !           370:   string(1) "2"
        !           371:   [15]=>
        !           372:   string(1) "8"
        !           373:   [16]=>
        !           374:   string(1) "9"
        !           375:   [17]=>
        !           376:   string(1) "0"
        !           377:   [18]=>
        !           378:   string(1) "5"
        !           379:   [19]=>
        !           380:   string(1) "5"
        !           381:   [20]=>
        !           382:   string(1) "5"
        !           383:   [21]=>
        !           384:   string(1) "5"
        !           385:   [22]=>
        !           386:   string(1) "5"
        !           387:   [23]=>
        !           388:   string(1) "5"
        !           389:   [24]=>
        !           390:   string(1) "5"
        !           391:   [25]=>
        !           392:   string(1) "5"
        !           393:   [26]=>
        !           394:   string(1) "5"
        !           395:   [27]=>
        !           396:   string(1) "5"
        !           397:   [28]=>
        !           398:   string(1) "5"
        !           399:   [29]=>
        !           400:   string(1) "5"
        !           401:   [30]=>
        !           402:   string(2) "55"
        !           403:   [31]=>
        !           404:   string(1) "5"
        !           405:   [32]=>
        !           406:   string(1) "5"
        !           407:   [33]=>
        !           408:   string(2) "5%"
        !           409:   [34]=>
        !           410:   string(1) "%"
        !           411:   [35]=>
        !           412:   string(1) "%"
        !           413:   [36]=>
        !           414:   string(1) "%"
        !           415:   [37]=>
        !           416:   string(1) "5"
        !           417:   [38]=>
        !           418:   string(1) "5"
        !           419:   [39]=>
        !           420:   string(1) "5"
        !           421:   [40]=>
        !           422:   string(1) "%"
        !           423:   [41]=>
        !           424:   string(1) "%"
        !           425:   [42]=>
        !           426:   string(1) "5"
        !           427:   [43]=>
        !           428:   string(1) "5"
        !           429:   [44]=>
        !           430:   string(1) "5"
        !           431:   [45]=>
        !           432:   string(1) "5"
        !           433:   [46]=>
        !           434:   string(2) "5%"
        !           435:   [47]=>
        !           436:   string(1) "%"
        !           437:   [48]=>
        !           438:   string(1) "%"
        !           439:   [49]=>
        !           440:   string(2) "55"
        !           441:   [50]=>
        !           442:   string(1) "1"
        !           443: }
        !           444: 
        !           445: *** Testing explode() with string variations as input argument ***
        !           446: 
        !           447: -- Testing string with escape characters --
        !           448: array(2) {
        !           449:   [0]=>
        !           450:   string(4) "1234"
        !           451:   [1]=>
        !           452:   string(10) "5678
        !           453:        9100"
        !           454: }
        !           455: array(4) {
        !           456:   [0]=>
        !           457:   string(4) "1234"
        !           458:   [1]=>
        !           459:   string(4) "abcd"
        !           460:   [2]=>
        !           461:   string(4) "5678"
        !           462:   [3]=>
        !           463:   string(4) "rstu"
        !           464: }
        !           465: 
        !           466: -- Testing string with embedded NULL --
        !           467: array(4) {
        !           468:   [0]=>
        !           469:   string(4) "abcd"
        !           470:   [1]=>
        !           471:   string(5) "n1234"
        !           472:   [2]=>
        !           473:   string(5) "05678"
        !           474:   [3]=>
        !           475:   string(12) "00efgh\xijkl"
        !           476: }
        !           477: array(7) {
        !           478:   [0]=>
        !           479:   string(4) "abcd"
        !           480:   [1]=>
        !           481:   string(4) "efgh"
        !           482:   [2]=>
        !           483:   string(4) "ijkl"
        !           484:   [3]=>
        !           485:   string(4) "mnop"
        !           486:   [4]=>
        !           487:   string(5) "0qrst"
        !           488:   [5]=>
        !           489:   string(4) "uvwx"
        !           490:   [6]=>
        !           491:   string(2) "yz"
        !           492: }
        !           493: 
        !           494: *** Testing explode() with objects ***
        !           495: array(2) {
        !           496:   [0]=>
        !           497:   string(1) "O"
        !           498:   [1]=>
        !           499:   string(4) "ject"
        !           500: }
        !           501: 
        !           502: *** Testing error conditions ***
        !           503: 
        !           504: Warning: explode() expects at most 3 parameters, 4 given in %s on line %d
        !           505: NULL
        !           506: 
        !           507: Warning: explode() expects at least 2 parameters, 1 given in %s on line %d
        !           508: NULL
        !           509: Done

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>