Annotation of embedaddon/php/ext/standard/tests/strings/stripslashes_variation2.phpt, revision 1.1.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>