PHP: str_word_count(åäöåäöåäöåäö) 返回整数值 12

标签 php html count cpu-word

我在我的网站上使用特殊符号,例如 å ä ö 来测量不同文本的长度。事实是,我注意到 PHP 将符号“唓䔓ö”每个视为 1 个单词。因此 åäö 算作 3 个单词,而 åäöåäöåäöåäöåäö 算作 15 个单词。嗯,这显然是不正确的,我在任何地方都找不到这个问题的答案。如果您能提供有用的答案,我将不胜感激,谢谢!

最佳答案

如果您需要考虑有限的单词字符集,只需将它们提供给 str_word_count 及其第三个参数 ( charlist ):

$charlist = 'åäö';
echo str_word_count('åäöåäöåäöåäöåäö', 0, $charlist); // 1

或者,您可以编写自己的 Unicode 就绪 str_word_count 函数。一种可能的方法是按非单词符号拆分源字符串,然后对结果数组进行计数:

function mb_str_word_count($str) {
  return preg_match_all('#[\p{L}\p{N}][\p{L}\p{N}\'-]*#u', $str);
}

基本上,此函数计算目标字符串中以字母或数字字符开头的所有子字符串,后跟任意数量(包括零)的字母、数字、连字符和单引号符号(与 str_word_count() 中给出的描述匹配)文档)。

关于PHP: str_word_count(åäöåäöåäöåäö) 返回整数值 12,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27092606/

相关文章:

php - 如何在关闭浏览器选项卡时清除 session ?

javascript - 读取文本文件,通过 PHP 回显并每隔几秒用 JS 刷新它

javascript - 使用 JS 通过复选框启用文本框

c - 整理文件输出问题

sql - 当另一个字段已经在 GROUP BY 中时,WHERE 大于计数的 SQL 查询

php - hasmany 表中的 Laravel Dropzonejs 文件验证

php - heroku local 在我的本地 Ubuntu 机器上失败

Php MySql 按小时排序自定义订单

html - float 列问题

mysql - SQL:如果同一个表中没有其他具有特殊不同值的条目,则只显示条目