explode.phpt 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  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 "\n";
  12. echo md5(var_export(explode("\1", "a". chr(1). "b". chr(0). "d" . chr(1) . "f" . chr(1). "1" . chr(1) . "d"), TRUE));
  13. echo "\n";
  14. try {
  15. var_dump(explode("", ""));
  16. } catch (\ValueError $e) {
  17. echo $e->getMessage() . "\n";
  18. }
  19. try {
  20. var_dump(explode("", NULL));
  21. } catch (\ValueError $e) {
  22. echo $e->getMessage() . "\n";
  23. }
  24. try {
  25. var_dump(explode(NULL, ""));
  26. } catch (\ValueError $e) {
  27. echo $e->getMessage() . "\n";
  28. }
  29. var_dump(explode("a", ""));
  30. var_dump(explode("a", "a"));
  31. var_dump(explode("a", NULL));
  32. try {
  33. var_dump(explode(NULL, "a"));
  34. } catch (\ValueError $e) {
  35. echo $e->getMessage() . "\n";
  36. }
  37. var_dump(explode("abc", "acb"));
  38. var_dump(explode("somestring", "otherstring"));
  39. var_dump(explode("somestring", "otherstring", -1));
  40. var_dump(explode("a", "aaaaaa"));
  41. var_dump(explode("==", str_repeat("-=".ord(0)."=-", 10)));
  42. var_dump(explode("=", str_repeat("-=".ord(0)."=-", 10)));
  43. //////////////////////////////////////
  44. var_dump(explode(":","a lazy dog:jumps:over:",-1));
  45. var_dump(explode(":","a lazy dog:jumps:over", -1));
  46. var_dump(explode(":","a lazy dog:jumps:over", -2));
  47. var_dump(explode(":","a lazy dog:jumps:over:",-4));
  48. var_dump(explode(":","a lazy dog:jumps:over:",-40000000000000));
  49. var_dump(explode(":^:","a lazy dog:^:jumps::over:^:",-1));
  50. var_dump(explode(":^:","a lazy dog:^:jumps::over:^:",-2));
  51. ?>
  52. --EXPECT--
  53. array (
  54. 0 => 'a',
  55. 1 => 'b' . "\0" . 'd',
  56. 2 => 'f',
  57. 3 => '1',
  58. 4 => 'd',
  59. )
  60. d6bee42a771449205344c0938ad4f035
  61. explode(): Argument #1 ($separator) cannot be empty
  62. explode(): Argument #1 ($separator) cannot be empty
  63. explode(): Argument #1 ($separator) cannot be empty
  64. array(1) {
  65. [0]=>
  66. string(0) ""
  67. }
  68. array(2) {
  69. [0]=>
  70. string(0) ""
  71. [1]=>
  72. string(0) ""
  73. }
  74. array(1) {
  75. [0]=>
  76. string(0) ""
  77. }
  78. explode(): Argument #1 ($separator) cannot be empty
  79. array(1) {
  80. [0]=>
  81. string(3) "acb"
  82. }
  83. array(1) {
  84. [0]=>
  85. string(11) "otherstring"
  86. }
  87. array(0) {
  88. }
  89. array(7) {
  90. [0]=>
  91. string(0) ""
  92. [1]=>
  93. string(0) ""
  94. [2]=>
  95. string(0) ""
  96. [3]=>
  97. string(0) ""
  98. [4]=>
  99. string(0) ""
  100. [5]=>
  101. string(0) ""
  102. [6]=>
  103. string(0) ""
  104. }
  105. array(1) {
  106. [0]=>
  107. string(60) "-=48=--=48=--=48=--=48=--=48=--=48=--=48=--=48=--=48=--=48=-"
  108. }
  109. array(21) {
  110. [0]=>
  111. string(1) "-"
  112. [1]=>
  113. string(2) "48"
  114. [2]=>
  115. string(2) "--"
  116. [3]=>
  117. string(2) "48"
  118. [4]=>
  119. string(2) "--"
  120. [5]=>
  121. string(2) "48"
  122. [6]=>
  123. string(2) "--"
  124. [7]=>
  125. string(2) "48"
  126. [8]=>
  127. string(2) "--"
  128. [9]=>
  129. string(2) "48"
  130. [10]=>
  131. string(2) "--"
  132. [11]=>
  133. string(2) "48"
  134. [12]=>
  135. string(2) "--"
  136. [13]=>
  137. string(2) "48"
  138. [14]=>
  139. string(2) "--"
  140. [15]=>
  141. string(2) "48"
  142. [16]=>
  143. string(2) "--"
  144. [17]=>
  145. string(2) "48"
  146. [18]=>
  147. string(2) "--"
  148. [19]=>
  149. string(2) "48"
  150. [20]=>
  151. string(1) "-"
  152. }
  153. array(3) {
  154. [0]=>
  155. string(10) "a lazy dog"
  156. [1]=>
  157. string(5) "jumps"
  158. [2]=>
  159. string(4) "over"
  160. }
  161. array(2) {
  162. [0]=>
  163. string(10) "a lazy dog"
  164. [1]=>
  165. string(5) "jumps"
  166. }
  167. array(1) {
  168. [0]=>
  169. string(10) "a lazy dog"
  170. }
  171. array(0) {
  172. }
  173. array(0) {
  174. }
  175. array(2) {
  176. [0]=>
  177. string(10) "a lazy dog"
  178. [1]=>
  179. string(11) "jumps::over"
  180. }
  181. array(1) {
  182. [0]=>
  183. string(10) "a lazy dog"
  184. }