word-stat.php 621 B

1234567891011121314151617181920
  1. <?php
  2. if (!function_exists("word_stat")) {
  3. // CJK和英文字词计数
  4. function word_stat(string $text)
  5. {
  6. $sum = 0;
  7. // 英文单词:按单词个数计算 排除Lm Lo; 一组连续数字视为一个单词计算
  8. $res = preg_match_all('/[\d\p{Lu}\p{Ll}\p{Lt}]+/u', $text);
  9. if ($res !== false) {
  10. $sum += $res;
  11. }
  12. // 按字符个数计算的:汉字、假名、谚文
  13. $res = preg_match_all('/[\p{Han}\p{Katakana}\p{Hiragana}\p{Hangul}]/u', $text);
  14. if ($res !== false) {
  15. $sum += $res;
  16. }
  17. return $sum;
  18. }
  19. }