使用str_replace将波斯语编号转换为英文数字

时间:2017-11-11 14:47:00

标签: php

我写了这个函数来将波斯数字转换为英文数字,​​但它返回给我与输入数字(波斯语)相同。

它包含一个波斯数字数组,我定义了一个范围,如波斯数,我想用str_replace函数替换英语的波斯语数

function convert($string) {
    $persian = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'];
    $num = range(0, 9);
    $englishNumbersOnly = str_replace($persian, $num, $string);
    return $englishNumbersOnly;
}

3 个答案:

答案 0 :(得分:0)

如果你想打印数字波斯语,你必须使用字体波斯语...例如你可以使用WYekan字体。

<?php
$number =1234;
?>
<p style="font-family: WYekan;"><?php echo $number ?></p>

答案 1 :(得分:0)

<?php
   $converted=convert('Any String as Input');
   echo $converted;

  function convert($string) {
   $persian = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'];
   $num = range(0, 9);
   $englishNumbersOnly = str_replace($persian, $num, $string);
   return $englishNumbersOnly;
  }
?>

答案 2 :(得分:0)

感谢@meykan-jain 的回答,解析阿拉伯语和波斯语都使用这个:

function parseNumber($string) {
    $persian = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'];
    $arabic = ['٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩'];
    $num = range(0, 9);
    $englishNumbersOnly = str_replace($persian, $num, $string);
    $englishNumbersOnly = str_replace($arabic, $num, $englishNumbersOnly);
    return $englishNumbersOnly;
}
相关问题