bug45923.phpt 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. --TEST--
  2. Bug #45923 (mb_st[r]ripos() offset not handled correctly)
  3. --SKIPIF--
  4. <?php extension_loaded('mbstring') or die('skip mbstring not available'); ?>
  5. --INI--
  6. mbstring.internal_encoding=UTF-8
  7. --FILE--
  8. <?php
  9. var_dump(strpos("abc abc abc", "abc", 0));
  10. var_dump(strpos("abc abc abc", "abc", 3));
  11. var_dump(strpos("abc abc abc", "abc", 6));
  12. var_dump(strpos("abc abc abc", "abc", 9));
  13. var_dump(strpos("abc abc abc", "abc", 11));
  14. var_dump(strpos("abc abc abc", "abc", 12));
  15. var_dump(strpos("abc abc abc", "abc", -1));
  16. var_dump(strpos("abc abc abc", "abc", -3));
  17. var_dump(strpos("abc abc abc", "abc", -6));
  18. var_dump(mb_strpos("●○◆ ●○◆ ●○◆", "●○◆", 0));
  19. var_dump(mb_strpos("●○◆ ●○◆ ●○◆", "●○◆", 3));
  20. var_dump(mb_strpos("●○◆ ●○◆ ●○◆", "●○◆", 6));
  21. var_dump(mb_strpos("●○◆ ●○◆ ●○◆", "●○◆", 9));
  22. var_dump(mb_strpos("●○◆ ●○◆ ●○◆", "●○◆", 11));
  23. var_dump(mb_strpos("●○◆ ●○◆ ●○◆", "●○◆", 12));
  24. var_dump(mb_strpos("●○◆ ●○◆ ●○◆", "●○◆", -1));
  25. var_dump(mb_strpos("●○◆ ●○◆ ●○◆", "●○◆", -3));
  26. var_dump(mb_strpos("●○◆ ●○◆ ●○◆", "●○◆", -6));
  27. var_dump(stripos("abc abc abc", "abc", 0));
  28. var_dump(stripos("abc abc abc", "abc", 3));
  29. var_dump(stripos("abc abc abc", "abc", 6));
  30. var_dump(stripos("abc abc abc", "abc", 9));
  31. var_dump(stripos("abc abc abc", "abc", 11));
  32. var_dump(stripos("abc abc abc", "abc", 12));
  33. var_dump(stripos("abc abc abc", "abc", -1));
  34. var_dump(stripos("abc abc abc", "abc", -3));
  35. var_dump(stripos("abc abc abc", "abc", -6));
  36. var_dump(mb_stripos("●○◆ ●○◆ ●○◆", "●○◆", 0));
  37. var_dump(mb_stripos("●○◆ ●○◆ ●○◆", "●○◆", 3));
  38. var_dump(mb_stripos("●○◆ ●○◆ ●○◆", "●○◆", 6));
  39. var_dump(mb_stripos("●○◆ ●○◆ ●○◆", "●○◆", 9));
  40. var_dump(mb_stripos("●○◆ ●○◆ ●○◆", "●○◆", 11));
  41. var_dump(mb_stripos("●○◆ ●○◆ ●○◆", "●○◆", 12));
  42. var_dump(mb_stripos("●○◆ ●○◆ ●○◆", "●○◆", -1));
  43. var_dump(mb_stripos("●○◆ ●○◆ ●○◆", "●○◆", -3));
  44. var_dump(mb_stripos("●○◆ ●○◆ ●○◆", "●○◆", -6));
  45. var_dump(strrpos("abc abc abc", "abc", 0));
  46. var_dump(strrpos("abc abc abc", "abc", 3));
  47. var_dump(strrpos("abc abc abc", "abc", 6));
  48. var_dump(strrpos("abc abc abc", "abc", 9));
  49. var_dump(strrpos("abc abc abc", "abc", 11));
  50. var_dump(strrpos("abc abc abc", "abc", 12));
  51. var_dump(strrpos("abc abc abc", "abc", -1));
  52. var_dump(strrpos("abc abc abc", "abc", -3));
  53. var_dump(strrpos("abc abc abc", "abc", -6));
  54. var_dump(mb_strrpos("●○◆ ●○◆ ●○◆", "●○◆", 0));
  55. var_dump(mb_strrpos("●○◆ ●○◆ ●○◆", "●○◆", 3));
  56. var_dump(mb_strrpos("●○◆ ●○◆ ●○◆", "●○◆", 6));
  57. var_dump(mb_strrpos("●○◆ ●○◆ ●○◆", "●○◆", 9));
  58. var_dump(mb_strrpos("●○◆ ●○◆ ●○◆", "●○◆", 11));
  59. var_dump(mb_strrpos("●○◆ ●○◆ ●○◆", "●○◆", 12));
  60. var_dump(mb_strrpos("●○◆ ●○◆ ●○◆", "●○◆", -1));
  61. var_dump(mb_strrpos("●○◆ ●○◆ ●○◆", "●○◆", -3));
  62. var_dump(mb_strrpos("●○◆ ●○◆ ●○◆", "●○◆", -6));
  63. var_dump(strripos("abc abc abc", "abc", 0));
  64. var_dump(strripos("abc abc abc", "abc", 3));
  65. var_dump(strripos("abc abc abc", "abc", 6));
  66. var_dump(strripos("abc abc abc", "abc", 9));
  67. var_dump(strripos("abc abc abc", "abc", 11));
  68. var_dump(strripos("abc abc abc", "abc", 12));
  69. var_dump(strripos("abc abc abc", "abc", -1));
  70. var_dump(strripos("abc abc abc", "abc", -3));
  71. var_dump(strripos("abc abc abc", "abc", -6));
  72. var_dump(mb_strripos("●○◆ ●○◆ ●○◆", "●○◆", 0));
  73. var_dump(mb_strripos("●○◆ ●○◆ ●○◆", "●○◆", 3));
  74. var_dump(mb_strripos("●○◆ ●○◆ ●○◆", "●○◆", 6));
  75. var_dump(mb_strripos("●○◆ ●○◆ ●○◆", "●○◆", 9));
  76. var_dump(mb_strripos("●○◆ ●○◆ ●○◆", "●○◆", 11));
  77. var_dump(mb_strripos("●○◆ ●○◆ ●○◆", "●○◆", 12));
  78. var_dump(mb_strripos("●○◆ ●○◆ ●○◆", "●○◆", -1));
  79. var_dump(mb_strripos("●○◆ ●○◆ ●○◆", "●○◆", -3));
  80. var_dump(mb_strripos("●○◆ ●○◆ ●○◆", "●○◆", -6));
  81. ?>
  82. --EXPECTF--
  83. int(0)
  84. int(4)
  85. int(8)
  86. bool(false)
  87. bool(false)
  88. Warning: strpos(): Offset not contained in string in %s on line %d
  89. bool(false)
  90. Warning: strpos(): Offset not contained in string in %s on line %d
  91. bool(false)
  92. Warning: strpos(): Offset not contained in string in %s on line %d
  93. bool(false)
  94. Warning: strpos(): Offset not contained in string in %s on line %d
  95. bool(false)
  96. int(0)
  97. int(4)
  98. int(8)
  99. bool(false)
  100. bool(false)
  101. Warning: mb_strpos(): Offset not contained in string in %s on line %d
  102. bool(false)
  103. Warning: mb_strpos(): Offset not contained in string in %s on line %d
  104. bool(false)
  105. Warning: mb_strpos(): Offset not contained in string in %s on line %d
  106. bool(false)
  107. Warning: mb_strpos(): Offset not contained in string in %s on line %d
  108. bool(false)
  109. int(0)
  110. int(4)
  111. int(8)
  112. bool(false)
  113. bool(false)
  114. Warning: stripos(): Offset not contained in string in %s on line %d
  115. bool(false)
  116. Warning: stripos(): Offset not contained in string in %s on line %d
  117. bool(false)
  118. Warning: stripos(): Offset not contained in string in %s on line %d
  119. bool(false)
  120. Warning: stripos(): Offset not contained in string in %s on line %d
  121. bool(false)
  122. int(0)
  123. int(4)
  124. int(8)
  125. bool(false)
  126. bool(false)
  127. Warning: mb_stripos(): Offset not contained in string in %s on line %d
  128. bool(false)
  129. Warning: mb_stripos(): Offset not contained in string in %s on line %d
  130. bool(false)
  131. Warning: mb_stripos(): Offset not contained in string in %s on line %d
  132. bool(false)
  133. Warning: mb_stripos(): Offset not contained in string in %s on line %d
  134. bool(false)
  135. int(8)
  136. int(8)
  137. int(8)
  138. bool(false)
  139. bool(false)
  140. Warning: strrpos(): Offset is greater than the length of haystack string in %s on line %d
  141. bool(false)
  142. int(8)
  143. int(8)
  144. int(4)
  145. int(8)
  146. int(8)
  147. int(8)
  148. bool(false)
  149. bool(false)
  150. Warning: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d
  151. bool(false)
  152. int(8)
  153. int(8)
  154. int(4)
  155. int(8)
  156. int(8)
  157. int(8)
  158. bool(false)
  159. bool(false)
  160. Warning: strripos(): Offset is greater than the length of haystack string in %s on line %d
  161. bool(false)
  162. int(8)
  163. int(8)
  164. int(4)
  165. int(8)
  166. int(8)
  167. int(8)
  168. bool(false)
  169. bool(false)
  170. Warning: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d
  171. bool(false)
  172. int(8)
  173. int(8)
  174. int(4)