mb_strpos.phpt 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. --TEST--
  2. mb_strpos()
  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_strpos($euc_jp, '日本語', 0, 'EUC-JP') . "\n";
  18. print mb_strpos($euc_jp, '0', 0, 'EUC-JP') . "\n";
  19. print mb_strpos($euc_jp, 3, 0, 'EUC-JP') . "\n";
  20. print mb_strpos($euc_jp, 0, 0, 'EUC-JP') . "\n";
  21. print mb_strpos($euc_jp, '日本語', 15, 'EUC-JP') . "\n";
  22. print mb_strpos($euc_jp, '0', 15, 'EUC-JP') . "\n";
  23. print mb_strpos($euc_jp, 3, 15, 'EUC-JP') . "\n";
  24. print mb_strpos($euc_jp, 0, 15, 'EUC-JP') . "\n";
  25. // Negative offset
  26. echo "== NEGATIVE OFFSET ==\n";
  27. print mb_strpos($euc_jp, '日本語', -15, 'EUC-JP') . "\n";
  28. print mb_strpos($euc_jp, '0', -15, 'EUC-JP') . "\n";
  29. print mb_strpos($euc_jp, 3, -15, 'EUC-JP') . "\n";
  30. print mb_strpos($euc_jp, 0, -15, 'EUC-JP') . "\n";
  31. print mb_strpos($euc_jp, 0, -43, 'EUC-JP') . "\n";
  32. // Non-existent
  33. echo "== NON-EXISTENT ==\n";
  34. $r = mb_strpos($euc_jp, '韓国語', 0, 'EUC-JP');
  35. ($r === FALSE) ? print "OK_STR\n" : print "NG_STR\n";
  36. $r = mb_strpos($euc_jp, "\n", 0, 'EUC-JP');
  37. ($r === FALSE) ? print "OK_NEWLINE\n" : print "NG_NEWLINE\n";
  38. // EUC-JP - No encoding parameter
  39. echo "== NO ENCODING PARAMETER ==\n";
  40. mb_internal_encoding('EUC-JP') or print("mb_internal_encoding() failed\n");
  41. print mb_strpos($euc_jp, '日本語', 0) . "\n";
  42. print mb_strpos($euc_jp, '0', 0) . "\n";
  43. print mb_strpos($euc_jp, 3, 0) . "\n";
  44. print mb_strpos($euc_jp, 0, 0) . "\n";
  45. $r = mb_strpos($euc_jp, '韓国語', 0);
  46. ($r === FALSE) ? print "OK_STR\n" : print "NG_STR\n";
  47. $r = mb_strpos($euc_jp, "\n", 0);
  48. ($r === FALSE) ? print "OK_NEWLINE\n" : print "NG_NEWLINE\n";
  49. // EUC-JP - No offset and encoding parameter
  50. echo "== NO OFFSET AND ENCODING PARAMETER ==\n";
  51. mb_internal_encoding('EUC-JP') or print("mb_internal_encoding() failed\n");
  52. print mb_strpos($euc_jp, '日本語') . "\n";
  53. print mb_strpos($euc_jp, '0') . "\n";
  54. print mb_strpos($euc_jp, 3) . "\n";
  55. print mb_strpos($euc_jp, 0) . "\n";
  56. $r = mb_strpos($euc_jp, '韓国語');
  57. ($r === FALSE) ? print "OK_STR\n" : print "NG_STR\n";
  58. $r = mb_strpos($euc_jp, "\n");
  59. ($r === FALSE) ? print "OK_NEWLINE\n" : print "NG_NEWLINE\n";
  60. ?>
  61. --EXPECT--
  62. String len: 43
  63. == POSITIVE OFFSET ==
  64. 10
  65. 0
  66. 3
  67. 0
  68. 34
  69. 30
  70. 33
  71. 30
  72. == NEGATIVE OFFSET ==
  73. 34
  74. 30
  75. 33
  76. 30
  77. 0
  78. == NON-EXISTENT ==
  79. OK_STR
  80. OK_NEWLINE
  81. == NO ENCODING PARAMETER ==
  82. 10
  83. 0
  84. 3
  85. 0
  86. OK_STR
  87. OK_NEWLINE
  88. == NO OFFSET AND ENCODING PARAMETER ==
  89. 10
  90. 0
  91. 3
  92. 0
  93. OK_STR
  94. OK_NEWLINE