mb_strimwidth.phpt 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. --TEST--
  2. mb_strimwidth()
  3. --EXTENSIONS--
  4. mbstring
  5. --INI--
  6. output_handler=
  7. --FILE--
  8. <?php
  9. // TODO: Add more encoding
  10. // EUC-JP
  11. $euc_jp = '0123この文字列は日本語です。EUC-JPを使っています。日本語は面倒臭い。';
  12. print "String width: ".mb_strwidth($euc_jp,'EUC-JP')."\n";
  13. print "1: ". mb_strimwidth($euc_jp, 0, 15,'...','EUC-JP') . "\n";
  14. print "2: ". mb_strimwidth($euc_jp, 0, 100,'...','EUC-JP') . "\n";
  15. print "3: ". mb_strimwidth($euc_jp, 15, 100,'...','EUC-JP') . "\n";
  16. print "4: ". mb_strimwidth($euc_jp, -30, 5,'...','EUC-JP') . "\n";
  17. print "5: ". mb_strimwidth($euc_jp, 38, 5,'...','EUC-JP') . "\n";
  18. print "6: ". mb_strimwidth($euc_jp, 38, -25,'...','EUC-JP') . "\n";
  19. print "7: ". mb_strimwidth($euc_jp, -30, -25,'...','EUC-JP') . "\n";
  20. try {
  21. var_dump(mb_strimwidth($euc_jp, 0, -100,'...','EUC-JP'));
  22. } catch (\ValueError $e) {
  23. echo $e->getMessage() . \PHP_EOL;
  24. }
  25. try {
  26. var_dump(mb_strimwidth($euc_jp, 100, 10,'...','EUC-JP'));
  27. } catch (\ValueError $e) {
  28. echo $e->getMessage() . \PHP_EOL;
  29. }
  30. try {
  31. var_dump(mb_strimwidth($euc_jp, -100, 10,'...','EUC-JP'));
  32. } catch (\ValueError $e) {
  33. echo $e->getMessage() . \PHP_EOL;
  34. }
  35. try {
  36. var_dump(mb_strimwidth($euc_jp, -10, -12,'...','EUC-JP'));
  37. } catch (\ValueError $e) {
  38. echo $e->getMessage() . \PHP_EOL;
  39. }
  40. ?>
  41. --EXPECT--
  42. String width: 68
  43. 1: 0123この文字...
  44. 2: 0123この文字列は日本語です。EUC-JPを使っています。日本語は面倒臭い。
  45. 3: 。EUC-JPを使っています。日本語は面倒臭い。
  46. 4: 。
  47. 5: 。
  48. 6: 。
  49. 7: 。
  50. mb_strimwidth(): Argument #3 ($width) is out of range
  51. mb_strimwidth(): Argument #2 ($start) is out of range
  52. mb_strimwidth(): Argument #2 ($start) is out of range
  53. mb_strimwidth(): Argument #3 ($width) is out of range