mb_stripos.phpt 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. --TEST--
  2. mb_stripos()
  3. --EXTENSIONS--
  4. mbstring
  5. --FILE--
  6. <?php
  7. // TODO: Add more encodings
  8. ini_set('include_path','.');
  9. include_once('common.inc');
  10. // Test string
  11. $euc_jp = '0123この文字列は日本語です。EUC-JPを使っています。0123日本語は面倒臭い。';
  12. $slen = mb_strlen($euc_jp, 'EUC-JP');
  13. echo "String len: $slen\n";
  14. // EUC-JP - With encoding parameter
  15. mb_internal_encoding('UTF-8') or print("mb_internal_encoding() failed\n");
  16. echo "== POSITIVE OFFSET ==\n";
  17. print mb_stripos($euc_jp, '日本語', 0, 'EUC-JP') . "\n";
  18. print mb_stripos($euc_jp, '0', 0, 'EUC-JP') . "\n";
  19. print mb_stripos($euc_jp, 3, 0, 'EUC-JP') . "\n";
  20. print mb_stripos($euc_jp, 0, 0, 'EUC-JP') . "\n";
  21. print mb_stripos($euc_jp, '日本語', 15, 'EUC-JP') . "\n";
  22. print mb_stripos($euc_jp, '0', 15, 'EUC-JP') . "\n";
  23. print mb_stripos($euc_jp, 3, 15, 'EUC-JP') . "\n";
  24. print mb_stripos($euc_jp, 0, 15, 'EUC-JP') . "\n";
  25. // Negative offset
  26. echo "== NEGATIVE OFFSET ==\n";
  27. print mb_stripos($euc_jp, '日本語', -15, 'EUC-JP') . "\n";
  28. print mb_stripos($euc_jp, '0', -15, 'EUC-JP') . "\n";
  29. print mb_stripos($euc_jp, 3, -15, 'EUC-JP') . "\n";
  30. print mb_stripos($euc_jp, 0, -15, 'EUC-JP') . "\n";
  31. print mb_stripos($euc_jp, 0, -43, 'EUC-JP') . "\n";
  32. // Out of range - should return false
  33. print ("== OUT OF RANGE ==\n");
  34. $r = mb_stripos($euc_jp, '日本語', 40, 'EUC-JP');
  35. ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n";
  36. $r = mb_stripos($euc_jp, '0', 40, 'EUC-JP');
  37. ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n";
  38. $r = mb_stripos($euc_jp, 3, 40, 'EUC-JP');
  39. ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n";
  40. $r = mb_stripos($euc_jp, 0, 40, 'EUC-JP');
  41. ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n";
  42. $r = mb_stripos($euc_jp, '日本語', -3, 'EUC-JP');
  43. ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n";
  44. $r = mb_stripos($euc_jp, '0', -3, 'EUC-JP');
  45. ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n";
  46. $r = mb_stripos($euc_jp, 3, -3, 'EUC-JP');
  47. ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n";
  48. $r = mb_stripos($euc_jp, 0, -3, 'EUC-JP');
  49. ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n";
  50. // Non-existent
  51. echo "== NON-EXISTENT ==\n";
  52. $r = mb_stripos($euc_jp, '韓国語', 0, 'EUC-JP');
  53. ($r === FALSE) ? print "OK_STR\n" : print "NG_STR\n";
  54. $r = mb_stripos($euc_jp, "\n", 0, 'EUC-JP');
  55. ($r === FALSE) ? print "OK_NEWLINE\n" : print "NG_NEWLINE\n";
  56. // EUC-JP - No encoding parameter
  57. echo "== NO ENCODING PARAMETER ==\n";
  58. mb_internal_encoding('EUC-JP') or print("mb_internal_encoding() failed\n");
  59. print mb_stripos($euc_jp, '日本語', 0) . "\n";
  60. print mb_stripos($euc_jp, '0', 0) . "\n";
  61. print mb_stripos($euc_jp, 3, 0) . "\n";
  62. print mb_stripos($euc_jp, 0, 0) . "\n";
  63. $r = mb_stripos($euc_jp, '韓国語', 0);
  64. ($r === FALSE) ? print "OK_STR\n" : print "NG_STR\n";
  65. $r = mb_stripos($euc_jp, "\n", 0);
  66. ($r === FALSE) ? print "OK_NEWLINE\n" : print "NG_NEWLINE\n";
  67. // EUC-JP - No offset and encoding parameter
  68. echo "== NO OFFSET AND ENCODING PARAMETER ==\n";
  69. mb_internal_encoding('EUC-JP') or print("mb_internal_encoding() failed\n");
  70. print mb_stripos($euc_jp, '日本語') . "\n";
  71. print mb_stripos($euc_jp, '0') . "\n";
  72. print mb_stripos($euc_jp, 3) . "\n";
  73. print mb_stripos($euc_jp, 0) . "\n";
  74. $r = mb_stripos($euc_jp, '韓国語');
  75. ($r === FALSE) ? print "OK_STR\n" : print "NG_STR\n";
  76. $r = mb_stripos($euc_jp, "\n");
  77. ($r === FALSE) ? print "OK_NEWLINE\n" : print "NG_NEWLINE\n";
  78. ?>
  79. --EXPECT--
  80. String len: 43
  81. == POSITIVE OFFSET ==
  82. 10
  83. 0
  84. 3
  85. 0
  86. 34
  87. 30
  88. 33
  89. 30
  90. == NEGATIVE OFFSET ==
  91. 34
  92. 30
  93. 33
  94. 30
  95. 0
  96. == OUT OF RANGE ==
  97. OK_OUT_RANGE
  98. OK_OUT_RANGE
  99. OK_OUT_RANGE
  100. OK_OUT_RANGE
  101. OK_OUT_RANGE
  102. OK_OUT_RANGE
  103. OK_OUT_RANGE
  104. OK_OUT_RANGE
  105. == NON-EXISTENT ==
  106. OK_STR
  107. OK_NEWLINE
  108. == NO ENCODING PARAMETER ==
  109. 10
  110. 0
  111. 3
  112. 0
  113. OK_STR
  114. OK_NEWLINE
  115. == NO OFFSET AND ENCODING PARAMETER ==
  116. 10
  117. 0
  118. 3
  119. 0
  120. OK_STR
  121. OK_NEWLINE