将英文数字转换为阿拉伯数字

时间:2010-08-02 10:22:23

标签: php arabic

如何将从数据库中检索的英文数字转换为PHP中的阿拉伯数字符号。

编辑:以下是阿拉伯数字的样子。我住在一个阿拉伯国家,所以请不要四处向我解释阿拉伯数字的样子。如果你能提供帮助,那就好了。我不需要虚假的想法。

http://upload.wikimedia.org/wikipedia/commons/thumb/2/21/Arabic_numerals-en.svg/500px-Arabic_numerals-en.svg.png

6 个答案:

答案 0 :(得分:23)

如果您指的是维基百科所称的eastern arabic / indic numerals,那么应该进行简单的替换操作。

$western_arabic = array('0','1','2','3','4','5','6','7','8','9');
$eastern_arabic = array('٠','١','٢','٣','٤','٥','٦','٧','٨','٩');

$str = str_replace($western_arabic, $eastern_arabic, $str);

答案 1 :(得分:3)

或者您可以从以下网址下载并使用此课程:http://www.phpclasses.org/package/6626-PHP-Convert-numbers-to-Arabic-representation.html(已测试并正常工作)。欢呼声。

答案 2 :(得分:0)

您是否正在尝试兑换,例如六十九到تسعةوستون?如果您可以拨打Google翻译服务或其他翻译服务,请尝试使用。否则,您应该编写自己的numeral解析器,并使用您对阿拉伯语的了解将其翻译为阿拉伯语。 (但使用翻译服务会容易得多。)(然后,PHP可能已经有了一个以正确的方式写出数字和数字的函数。)

答案 3 :(得分:0)

我建议你尝试使用不同语言的资源文件,特别是如果内容已知。 例: 2个文件语言文件,1个名为language_EN,另一个名为language_AR 其中langauge_EN用于存储英语值,而language_AR用于存储阿拉伯语。

所以例如你想存储数字“1”

在langauge_EN中,做这样的事情。 number.one = 1

然后在langauge_AR中,(假装x是阿拉伯语中的数字“1”,但我想首选unicode) number.one = X

所以在你从数据库中检索并知道它是数字后, 你的原始结果是“一个”。

所以使用数字。+ [来自数据库的结果]从langauage_AR加载 这种方法在允许切换语言的网页中得到了广泛的应用。 因此,任何时候你需要转换回英语,只需改回language_EN。 这不仅适用于数字。 Gd Luck

答案 4 :(得分:0)

阿拉伯数字:

function to_arabic_number($number)
{
    $number = str_replace("1","۱",$number);
    $number = str_replace("2","۲",$number);
    $number = str_replace("3","۳",$number);
    $number = str_replace("4","٤",$number);
    $number = str_replace("5","٥",$number);
    $number = str_replace("6","٦",$number);
    $number = str_replace("7","۷",$number);
    $number = str_replace("8","۸",$number);
    $number = str_replace("9","۹",$number);
    $number = str_replace("0","۰",$number);
    return $number;
}

波斯数字:

function to_persian_number($number)
{
    $number = str_replace("1","۱",$number);
    $number = str_replace("2","۲",$number);
    $number = str_replace("3","۳",$number);
    $number = str_replace("4","۴",$number);
    $number = str_replace("5","۵",$number);
    $number = str_replace("6","۶",$number);
    $number = str_replace("7","۷",$number);
    $number = str_replace("8","۸",$number);
    $number = str_replace("9","۹",$number);
    $number = str_replace("0","۰",$number);
    return $number;
}

答案 5 :(得分:-1)

使用strtr的简单解决方案:

strtr($str, ['٠','١','٢','٣','٤','٥','٦','٧','٨','٩']);

要从东部阿拉伯语转换为阿拉伯语:

strtr($str, array_flip(['٠','١','٢','٣','٤','٥','٦','٧','٨','٩']));