如何将从数据库中检索的英文数字转换为PHP中的阿拉伯数字符号。
编辑:以下是阿拉伯数字的样子。我住在一个阿拉伯国家,所以请不要四处向我解释阿拉伯数字的样子。如果你能提供帮助,那就好了。我不需要虚假的想法。
答案 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_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(['٠','١','٢','٣','٤','٥','٦','٧','٨','٩']));