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

1.1     ! misho       1: --TEST--
        !             2: Test stripslashes() function : usage variations - un-quote strings quoted with addslashes()
        !             3: --FILE--
        !             4: <?php
        !             5: /* Prototype  : string stripslashes ( string $str )
        !             6:  * Description: Returns an un-quoted string
        !             7:  * Source code: ext/standard/string.c
        !             8: */
        !             9: 
        !            10: /*
        !            11:  * Test stripslashes() with various strings containing characters thats can be backslashed.
        !            12:  * First adding slashes using addslashes() and then removing the slashes using stripslashes() 
        !            13: */
        !            14: 
        !            15: echo "*** Testing stripslashes() : with various strings containing backslashed characters ***\n";
        !            16: 
        !            17: // initialising a heredoc string
        !            18: $heredoc_string = <<<EOT
        !            19: This is line 1 of 'heredoc' string
        !            20: This is line 2 of "heredoc" string
        !            21: EOT;
        !            22: 
        !            23: $heredoc_null_string =<<<EOT
        !            24: EOT;
        !            25: $heredoc_string_only_backslash =<<<EOT
        !            26: \
        !            27: EOT;
        !            28: $heredoc_string_only_single_quote =<<<EOT
        !            29: '
        !            30: EOT;
        !            31: $heredoc_string_only_double_quote =<<<EOT
        !            32: "
        !            33: EOT;
        !            34:  
        !            35: // initialising the string array
        !            36: 
        !            37: $str_array = array( 
        !            38:                     // string without any characters that can be backslashed
        !            39:                     'Hello world',
        !            40:  
        !            41:                     // string with single quotes
        !            42:                     "how're you doing?", 
        !            43:                     "don't disturb u'r neighbours",
        !            44:                     "don't disturb u'r neighbours''",
        !            45:                     '',
        !            46:                     '\'',
        !            47:                     "'",
        !            48:                     $heredoc_string_only_single_quote,
        !            49:                     
        !            50:                     // string with double quotes
        !            51:                     'he said, "he will be on leave"',
        !            52:                     'he said, ""he will be on leave"',
        !            53:                     '"""PHP"""',
        !            54:                     "",
        !            55:                     "\"",
        !            56:                     '"',
        !            57:                    "hello\"",
        !            58:                     $heredoc_string_only_double_quote,
        !            59:                          
        !            60:                     // string with backslash characters
        !            61:                     'Is your name Ram\Krishna?',
        !            62:                     '\\0.0.0.0',
        !            63:                     'c:\php\testcase\stripslashes',
        !            64:                     '\\',
        !            65:                     $heredoc_string_only_backslash,
        !            66: 
        !            67:                     // string with nul characters
        !            68:                     'hello'.chr(0).'world',
        !            69:                     chr(0).'hello'.chr(0),
        !            70:                     chr(0).chr(0).'hello',
        !            71:                     chr(0),
        !            72: 
        !            73:                     // mixed strings
        !            74:                     "'\\0.0.0.0'",
        !            75:                     "'\\0.0.0.0'".chr(0),
        !            76:                     chr(0)."'c:\php\'",
        !            77:                     '"\\0.0.0.0"',
        !            78:                     '"c:\php\"'.chr(0)."'",
        !            79:                     '"hello"'."'world'".chr(0).'//',
        !            80: 
        !            81:                    // string with hexadecimal number
        !            82:                     "0xABCDEF0123456789",
        !            83:                     "\x00",
        !            84:                     '!@#$%&*@$%#&/;:,<>',
        !            85:                     "hello\x00world",
        !            86: 
        !            87:                     // heredoc strings
        !            88:                     $heredoc_string,
        !            89:                     $heredoc_null_string
        !            90:                   );
        !            91: 
        !            92: $count = 1;
        !            93: // looping to test for all strings in $str_array
        !            94: foreach( $str_array as $str )  {
        !            95:   echo "\n-- Iteration $count --\n";
        !            96:   $str_addslashes = addslashes($str);
        !            97:   var_dump("The string after addslashes is:", $str_addslashes);
        !            98:   $str_stripslashes = stripslashes($str_addslashes);
        !            99:   var_dump("The string after stripslashes is:", $str_stripslashes);
        !           100:   if( strcmp($str, $str_stripslashes) != 0 )
        !           101:     echo "\nError: Original string and string from stripslash() donot match\n";
        !           102:   $count ++;
        !           103: }
        !           104: 
        !           105: echo "Done\n";
        !           106: ?>
        !           107: --EXPECTF--
        !           108: *** Testing stripslashes() : with various strings containing backslashed characters ***
        !           109: 
        !           110: -- Iteration 1 --
        !           111: string(31) "The string after addslashes is:"
        !           112: string(11) "Hello world"
        !           113: string(33) "The string after stripslashes is:"
        !           114: string(11) "Hello world"
        !           115: 
        !           116: -- Iteration 2 --
        !           117: string(31) "The string after addslashes is:"
        !           118: string(18) "how\'re you doing?"
        !           119: string(33) "The string after stripslashes is:"
        !           120: string(17) "how're you doing?"
        !           121: 
        !           122: -- Iteration 3 --
        !           123: string(31) "The string after addslashes is:"
        !           124: string(30) "don\'t disturb u\'r neighbours"
        !           125: string(33) "The string after stripslashes is:"
        !           126: string(28) "don't disturb u'r neighbours"
        !           127: 
        !           128: -- Iteration 4 --
        !           129: string(31) "The string after addslashes is:"
        !           130: string(34) "don\'t disturb u\'r neighbours\'\'"
        !           131: string(33) "The string after stripslashes is:"
        !           132: string(30) "don't disturb u'r neighbours''"
        !           133: 
        !           134: -- Iteration 5 --
        !           135: string(31) "The string after addslashes is:"
        !           136: string(0) ""
        !           137: string(33) "The string after stripslashes is:"
        !           138: string(0) ""
        !           139: 
        !           140: -- Iteration 6 --
        !           141: string(31) "The string after addslashes is:"
        !           142: string(2) "\'"
        !           143: string(33) "The string after stripslashes is:"
        !           144: string(1) "'"
        !           145: 
        !           146: -- Iteration 7 --
        !           147: string(31) "The string after addslashes is:"
        !           148: string(2) "\'"
        !           149: string(33) "The string after stripslashes is:"
        !           150: string(1) "'"
        !           151: 
        !           152: -- Iteration 8 --
        !           153: string(31) "The string after addslashes is:"
        !           154: string(2) "\'"
        !           155: string(33) "The string after stripslashes is:"
        !           156: string(1) "'"
        !           157: 
        !           158: -- Iteration 9 --
        !           159: string(31) "The string after addslashes is:"
        !           160: string(32) "he said, \"he will be on leave\""
        !           161: string(33) "The string after stripslashes is:"
        !           162: string(30) "he said, "he will be on leave""
        !           163: 
        !           164: -- Iteration 10 --
        !           165: string(31) "The string after addslashes is:"
        !           166: string(34) "he said, \"\"he will be on leave\""
        !           167: string(33) "The string after stripslashes is:"
        !           168: string(31) "he said, ""he will be on leave""
        !           169: 
        !           170: -- Iteration 11 --
        !           171: string(31) "The string after addslashes is:"
        !           172: string(15) "\"\"\"PHP\"\"\""
        !           173: string(33) "The string after stripslashes is:"
        !           174: string(9) """"PHP""""
        !           175: 
        !           176: -- Iteration 12 --
        !           177: string(31) "The string after addslashes is:"
        !           178: string(0) ""
        !           179: string(33) "The string after stripslashes is:"
        !           180: string(0) ""
        !           181: 
        !           182: -- Iteration 13 --
        !           183: string(31) "The string after addslashes is:"
        !           184: string(2) "\""
        !           185: string(33) "The string after stripslashes is:"
        !           186: string(1) """
        !           187: 
        !           188: -- Iteration 14 --
        !           189: string(31) "The string after addslashes is:"
        !           190: string(2) "\""
        !           191: string(33) "The string after stripslashes is:"
        !           192: string(1) """
        !           193: 
        !           194: -- Iteration 15 --
        !           195: string(31) "The string after addslashes is:"
        !           196: string(7) "hello\""
        !           197: string(33) "The string after stripslashes is:"
        !           198: string(6) "hello""
        !           199: 
        !           200: -- Iteration 16 --
        !           201: string(31) "The string after addslashes is:"
        !           202: string(2) "\""
        !           203: string(33) "The string after stripslashes is:"
        !           204: string(1) """
        !           205: 
        !           206: -- Iteration 17 --
        !           207: string(31) "The string after addslashes is:"
        !           208: string(26) "Is your name Ram\\Krishna?"
        !           209: string(33) "The string after stripslashes is:"
        !           210: string(25) "Is your name Ram\Krishna?"
        !           211: 
        !           212: -- Iteration 18 --
        !           213: string(31) "The string after addslashes is:"
        !           214: string(9) "\\0.0.0.0"
        !           215: string(33) "The string after stripslashes is:"
        !           216: string(8) "\0.0.0.0"
        !           217: 
        !           218: -- Iteration 19 --
        !           219: string(31) "The string after addslashes is:"
        !           220: string(31) "c:\\php\\testcase\\stripslashes"
        !           221: string(33) "The string after stripslashes is:"
        !           222: string(28) "c:\php\testcase\stripslashes"
        !           223: 
        !           224: -- Iteration 20 --
        !           225: string(31) "The string after addslashes is:"
        !           226: string(2) "\\"
        !           227: string(33) "The string after stripslashes is:"
        !           228: string(1) "\"
        !           229: 
        !           230: -- Iteration 21 --
        !           231: string(31) "The string after addslashes is:"
        !           232: string(2) "\\"
        !           233: string(33) "The string after stripslashes is:"
        !           234: string(1) "\"
        !           235: 
        !           236: -- Iteration 22 --
        !           237: string(31) "The string after addslashes is:"
        !           238: string(12) "hello\0world"
        !           239: string(33) "The string after stripslashes is:"
        !           240: string(11) "helloworld"
        !           241: 
        !           242: -- Iteration 23 --
        !           243: string(31) "The string after addslashes is:"
        !           244: string(9) "\0hello\0"
        !           245: string(33) "The string after stripslashes is:"
        !           246: string(7) "hello"
        !           247: 
        !           248: -- Iteration 24 --
        !           249: string(31) "The string after addslashes is:"
        !           250: string(9) "\0\0hello"
        !           251: string(33) "The string after stripslashes is:"
        !           252: string(7) "hello"
        !           253: 
        !           254: -- Iteration 25 --
        !           255: string(31) "The string after addslashes is:"
        !           256: string(2) "\0"
        !           257: string(33) "The string after stripslashes is:"
        !           258: string(1) ""
        !           259: 
        !           260: -- Iteration 26 --
        !           261: string(31) "The string after addslashes is:"
        !           262: string(13) "\'\\0.0.0.0\'"
        !           263: string(33) "The string after stripslashes is:"
        !           264: string(10) "'\0.0.0.0'"
        !           265: 
        !           266: -- Iteration 27 --
        !           267: string(31) "The string after addslashes is:"
        !           268: string(15) "\'\\0.0.0.0\'\0"
        !           269: string(33) "The string after stripslashes is:"
        !           270: string(11) "'\0.0.0.0'"
        !           271: 
        !           272: -- Iteration 28 --
        !           273: string(31) "The string after addslashes is:"
        !           274: string(15) "\0\'c:\\php\\\'"
        !           275: string(33) "The string after stripslashes is:"
        !           276: string(10) "'c:\php\'"
        !           277: 
        !           278: -- Iteration 29 --
        !           279: string(31) "The string after addslashes is:"
        !           280: string(13) "\"\\0.0.0.0\""
        !           281: string(33) "The string after stripslashes is:"
        !           282: string(10) ""\0.0.0.0""
        !           283: 
        !           284: -- Iteration 30 --
        !           285: string(31) "The string after addslashes is:"
        !           286: string(17) "\"c:\\php\\\"\0\'"
        !           287: string(33) "The string after stripslashes is:"
        !           288: string(11) ""c:\php\"'"
        !           289: 
        !           290: -- Iteration 31 --
        !           291: string(31) "The string after addslashes is:"
        !           292: string(22) "\"hello\"\'world\'\0//"
        !           293: string(33) "The string after stripslashes is:"
        !           294: string(17) ""hello"'world'//"
        !           295: 
        !           296: -- Iteration 32 --
        !           297: string(31) "The string after addslashes is:"
        !           298: string(18) "0xABCDEF0123456789"
        !           299: string(33) "The string after stripslashes is:"
        !           300: string(18) "0xABCDEF0123456789"
        !           301: 
        !           302: -- Iteration 33 --
        !           303: string(31) "The string after addslashes is:"
        !           304: string(2) "\0"
        !           305: string(33) "The string after stripslashes is:"
        !           306: string(1) ""
        !           307: 
        !           308: -- Iteration 34 --
        !           309: string(31) "The string after addslashes is:"
        !           310: string(18) "!@#$%&*@$%#&/;:,<>"
        !           311: string(33) "The string after stripslashes is:"
        !           312: string(18) "!@#$%&*@$%#&/;:,<>"
        !           313: 
        !           314: -- Iteration 35 --
        !           315: string(31) "The string after addslashes is:"
        !           316: string(12) "hello\0world"
        !           317: string(33) "The string after stripslashes is:"
        !           318: string(11) "helloworld"
        !           319: 
        !           320: -- Iteration 36 --
        !           321: string(31) "The string after addslashes is:"
        !           322: string(73) "This is line 1 of \'heredoc\' string
        !           323: This is line 2 of \"heredoc\" string"
        !           324: string(33) "The string after stripslashes is:"
        !           325: string(69) "This is line 1 of 'heredoc' string
        !           326: This is line 2 of "heredoc" string"
        !           327: 
        !           328: -- Iteration 37 --
        !           329: string(31) "The string after addslashes is:"
        !           330: string(0) ""
        !           331: string(33) "The string after stripslashes is:"
        !           332: string(0) ""
        !           333: Done

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