【问题标题】:how to break hindi string in array with php and count how many letter and vowel in string如何用php打破数组中的印地语字符串并计算字符串中有多少个字母和元音
【发布时间】:2014-12-28 16:04:13
【问题描述】:

我有类似的东西

$a = "बिक्रम"

我想在php中实现类似的东西

a[0] = बि 
a[1] = क्र 
a[3] = म

现在我想计算变量中印地语名称的字母以及印地语名称(字符串)中有多少元音。 如何用php打破数组中的印地语字符串并计算字符串中有多少个字母和元音 索引页面

<html>

<head>
  <script src="http://www.hinkhoj.com/common/js/keyboard.js"></script>
  <link rel="stylesheet" type="text/css" href="http://www.hinkhoj.com/common/css/keyboard.css" />
</head>

<body align="center" style="margin-top:15%">
  Name :&nbsp;&nbsp;&nbsp;&nbsp;
  <script language="javascript">
    CreateCustomHindiTextBox("nameid", "", 40, true);

    function ff() {
      var a = document.getElementById("nameid").value;
      var xmlhttp;
      if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
      } else { // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
      xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
          document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
        }
      }

      xmlhttp.open("GET", "demo_get.php?val=" + a, true);
      xmlhttp.send();

    }
  </script>

  <input type="submit" name="submit" onClick="ff()">

  <div id="myDiv"></div>
</body>

</html>

ajax 页面

<?php

function mbStringToArray ($string) {
    $strlen = mb_strlen($string);
    while ($strlen) {
        $array[] = mb_substr($string,0,1,"UTF-8");
        $string = mb_substr($string,1,$strlen,"UTF-8");
        $strlen = mb_strlen($string);
    }
    return $array;
} 
echo $name = $_GET['val'];

print_r(mbStringToArray($name));


?>

【问题讨论】:

  • 说 echo $a[0], echo $a[1] .... 或使用 explode ("", $a);
  • 我们能得到这三个字符的 unicode 数字吗?

标签: php split hindi


【解决方案1】:

一种方法,但无法打印所提到的确切输出

<?php
function mbStringToArray ($string) {
    $strlen = mb_strlen($string);
    while ($strlen) {
        $array[] = mb_substr($string,0,1,"UTF-8");
        $string = mb_substr($string,1,$strlen,"UTF-8");
        $strlen = mb_strlen($string);
    }
    return $array;
} 
$a = "बिक्रम";
print_r(mbStringToArray($a));

输出:

数组 ( [0] => ब [1] => ि [2] => क [3] => ् [4] => र [5] => म )

您可以做的是创建函数,该函数在 mbStringToArray() 返回的数组上进行迭代,如果下一个元素等于 ि, ् 等 Varnamala(वर्णमाला) 等,则将其与前一个元素连接在一起。

这是一种方法。

function joinVarnamala($array){
    $singsArray=array("ि","्");
    $out=array($array[0]);

    for ($i=1; $i <count($array) ; $i++) { 
        if (in_array($array[$i], $singsArray)) {
            $out[count($out)-1].=$array[$i];
        }else{
            $out[]=$array[$i];
        }
    }
    return $out;
}
print_r(joinVarnamala($ar));

输出:

数组 ( [0] => बि [1] => क् [2] => र [3] => म )

【讨论】:

  • 您好先生,我正在使用您的方法,但输出如下:- Array ( [0] => & [1] => # [2] => 2 [3] => 3 [4] => 2 [5] => 5 [6] => ; [7] => & [8] => # [9] => 2 [10] => 3 [11] => 6 [12] => 7 [13] => ; [14] => & [15] => # [16] => 2 [17] => 3 [18] => 5 [19] => 2 [20] => ; [ 21] => & [22] => # [23] => 2 [24] => 3 [25] => 8 [26] => 1 [27] => ; [28] => & [29] => # [30] => 2 [31] => 3 [32] => 4 [33] => 0 [34] => ; [35] => & [36] => # [37] => 2 [38] => 3 [39] => 6 [40] => 7 [41] => ;) 这是什么原因,有什么解决办法请回复
  • 如果您有任何问题共享代码,如果不查看代码就无法预测可能是什么问题。
  • 先生,您的代码可以在您的网站上运行,但是当我将您的代码放入我的记事本++ 文件时,它会显示如下:- $a = "??????";
  • 由于字符编码,您可以做的最简单的事情是在记事本++中创建一个新文件,复制整个以前的代码+上面的代码,然后保存并用以前的代码或新名称替换它。
  • 或在文档中点击顶部的编码菜单并选择 UTF-8 编码,然后粘贴代码。
猜你喜欢
  • 2023-03-20
  • 2019-11-03
  • 2016-07-25
  • 1970-01-01
  • 2023-03-19
  • 2013-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多