explode.phpt 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. --TEST--
  2. explode() function
  3. --INI--
  4. error_reporting=2047
  5. --SKIPIF--
  6. <?php if (PHP_INT_SIZE != 8) die("skip this test is for 64-bit only");
  7. --FILE--
  8. <?php
  9. /* From http://bugs.php.net/19865 */
  10. echo var_export(explode("\1", "a". chr(1). "b". chr(0). "d" . chr(1) . "f" . chr(1). "1" . chr(1) . "d"), TRUE);
  11. echo md5(var_export(explode("\1", "a". chr(1). "b". chr(0). "d" . chr(1) . "f" . chr(1). "1" . chr(1) . "d"), TRUE));
  12. echo "\n";
  13. var_dump(@explode("", ""));
  14. var_dump(@explode("", NULL));
  15. var_dump(@explode(NULL, ""));
  16. var_dump(@explode("a", ""));
  17. var_dump(@explode("a", "a"));
  18. var_dump(@explode("a", NULL));
  19. var_dump(@explode(NULL, "a"));
  20. var_dump(@explode("abc", "acb"));
  21. var_dump(@explode("somestring", "otherstring"));
  22. var_dump(@explode("somestring", "otherstring", -1));
  23. var_dump(@explode("a", "aaaaaa"));
  24. var_dump(@explode("==", str_repeat("-=".ord(0)."=-", 10)));
  25. var_dump(@explode("=", str_repeat("-=".ord(0)."=-", 10)));
  26. //////////////////////////////////////
  27. var_dump(explode(":","a lazy dog:jumps:over:",-1));
  28. var_dump(explode(":","a lazy dog:jumps:over", -1));
  29. var_dump(explode(":","a lazy dog:jumps:over", -2));
  30. var_dump(explode(":","a lazy dog:jumps:over:",-4));
  31. var_dump(explode(":","a lazy dog:jumps:over:",-40000000000000));
  32. var_dump(explode(":^:","a lazy dog:^:jumps::over:^:",-1));
  33. var_dump(explode(":^:","a lazy dog:^:jumps::over:^:",-2));
  34. ?>
  35. --EXPECT--
  36. array (
  37. 0 => 'a',
  38. 1 => 'b' . "\0" . 'd',
  39. 2 => 'f',
  40. 3 => '1',
  41. 4 => 'd',
  42. )d6bee42a771449205344c0938ad4f035
  43. bool(false)
  44. bool(false)
  45. bool(false)
  46. array(1) {
  47. [0]=>
  48. string(0) ""
  49. }
  50. array(2) {
  51. [0]=>
  52. string(0) ""
  53. [1]=>
  54. string(0) ""
  55. }
  56. array(1) {
  57. [0]=>
  58. string(0) ""
  59. }
  60. bool(false)
  61. array(1) {
  62. [0]=>
  63. string(3) "acb"
  64. }
  65. array(1) {
  66. [0]=>
  67. string(11) "otherstring"
  68. }
  69. array(0) {
  70. }
  71. array(7) {
  72. [0]=>
  73. string(0) ""
  74. [1]=>
  75. string(0) ""
  76. [2]=>
  77. string(0) ""
  78. [3]=>
  79. string(0) ""
  80. [4]=>
  81. string(0) ""
  82. [5]=>
  83. string(0) ""
  84. [6]=>
  85. string(0) ""
  86. }
  87. array(1) {
  88. [0]=>
  89. string(60) "-=48=--=48=--=48=--=48=--=48=--=48=--=48=--=48=--=48=--=48=-"
  90. }
  91. array(21) {
  92. [0]=>
  93. string(1) "-"
  94. [1]=>
  95. string(2) "48"
  96. [2]=>
  97. string(2) "--"
  98. [3]=>
  99. string(2) "48"
  100. [4]=>
  101. string(2) "--"
  102. [5]=>
  103. string(2) "48"
  104. [6]=>
  105. string(2) "--"
  106. [7]=>
  107. string(2) "48"
  108. [8]=>
  109. string(2) "--"
  110. [9]=>
  111. string(2) "48"
  112. [10]=>
  113. string(2) "--"
  114. [11]=>
  115. string(2) "48"
  116. [12]=>
  117. string(2) "--"
  118. [13]=>
  119. string(2) "48"
  120. [14]=>
  121. string(2) "--"
  122. [15]=>
  123. string(2) "48"
  124. [16]=>
  125. string(2) "--"
  126. [17]=>
  127. string(2) "48"
  128. [18]=>
  129. string(2) "--"
  130. [19]=>
  131. string(2) "48"
  132. [20]=>
  133. string(1) "-"
  134. }
  135. array(3) {
  136. [0]=>
  137. string(10) "a lazy dog"
  138. [1]=>
  139. string(5) "jumps"
  140. [2]=>
  141. string(4) "over"
  142. }
  143. array(2) {
  144. [0]=>
  145. string(10) "a lazy dog"
  146. [1]=>
  147. string(5) "jumps"
  148. }
  149. array(1) {
  150. [0]=>
  151. string(10) "a lazy dog"
  152. }
  153. array(0) {
  154. }
  155. array(0) {
  156. }
  157. array(2) {
  158. [0]=>
  159. string(10) "a lazy dog"
  160. [1]=>
  161. string(11) "jumps::over"
  162. }
  163. array(1) {
  164. [0]=>
  165. string(10) "a lazy dog"
  166. }