试图计算非英文字符会产生错误的结果

时间:2016-07-16 02:10:41

标签: php

因此,在我的网页上,我有一个输入表单(带有'accept-charset =“UTF-8”')供用户输入文本,该文本将发布到php页面。在php页面中,输入应该用空格分隔,然后存储在一个数组中,其键值等于该单词中字母的总数。不用担心长度相同的单词。

示例:

用户输入“def ghijk a bc”

  • $ stringArr [1] [0] =“a”

  • $ stringArr [2] [0] =“bc”

  • $ stringArr [3] [0] =“def”

  • $ stringArr [5] [0] =“ghijk”

当谈到英文字母时,我的工作正常,但如果我尝试输入其他语言的字母,那么关键值总是错误的。以印地语中的这封信为例:“मैं”,它给它的关键值为21而不是1.这是什么解决方法?

$string = "मैं मैंमैं";

$stringLenArr = preg_split('/\s+/', $string);

$stringArr = array();

foreach($stringLenArr as $value) {
    // What I used before:
    // $stringArr[strlen($value)][] = $value; 

    // Attempted solution which still only works with English
    $stringArr[mb_strlen($value, "UTF-8")][] = $value;
}

只是为了让事情更清楚:只输入一种语言,所以如果解决方案需要输入页面上的语言选择框,那就没问题。

0 个答案:

没有答案