为什么阿拉伯语数字(١٢٣)在文本框中不被接受为实数?
在开发我的一个网站时,我注意到如果我输入阿拉伯数字(١٢٣),它们不会被解释为实数值。然后,我测试了其他几个网站,发现他们也不接受阿拉伯数字。
问题是,我的客户似乎需要此功能(接受阿拉伯数字)。我不知道从哪里开始。我的平台是magento(php)。
在开发我的一个网站时,我注意到如果我输入阿拉伯数字(١٢٣),它们不会被解释为实数值。然后,我测试了其他几个网站,发现他们也不接受阿拉伯数字。
问题是,我的客户似乎需要此功能(接受阿拉伯数字)。我不知道从哪里开始。我的平台是magento(php)。
您需要安装阿拉伯语语言包的 AFAIK - 请参阅 http://www.magentocommerce.com/magento-connect/Ahmed+J.+Hadi/extension/353/magento-community-modules--arabic-saudi-arabia-language-pack./mage install
为了允许PHP接受阿拉伯数字或波斯数字(波斯语)(١٢٣٤٥),我开发了这个简单的函数:
<?php
/*
/////////////////////
This function has been created by Abdulfattah alhazmi
Roles:
To convert Arabic/Farsi Numbers (٠ - ١ - ٢ - ٣ - ٤ - ٥ - ٦ - ٧ - ٨ - ٩)
TO the corrosponding English numbers (0-1-2-3-4-5-6-7-8-9)
http://hazmi.co.cc
/////////////////////
*/
function convertArabicNumbers($arabic) {
$trans = array(
"٠" => "0",
"١" => "1",
"٢" => "2",
"٣" => "3",
"٤" => "4",
"٥" => "5",
"٦" => "6",
"٧" => "7",
"٨" => "8",
"٩" => "9",
);
return strtr($arabic, $trans);
}
?>
注意:要从表单中的文本字段获得正确的结果,必须使用 htmlspecialchars_decode()
函数。例如:
$mytext = htmlspecialchars_decode($_POST['mytext']));
$mytext = convertArabicNumbers($mytext);
若要确保代码安全,请添加 strip_tags()。
。例如:
$mytext = strip_tags(htmlspecialchars_decode($_POST['mytext']));
$mytext = convertArabicNumbers($mytext);
如果您对此功能有任何疑问,请随时问我。