如何通过简单的功能将波斯语/阿拉伯数字转换为英文数字?
波斯语/阿拉伯数字:
? // -> 0
? // -> 1
? // -> 2
? // -> 3
? // -> 4
? // -> 5
? // -> 6
? // -> 7
? // -> 8
? // -> 9
Run Code Online (Sandbox Code Playgroud)
unicode上的数字:
$num0="۰";
$num1="۱";
$num2="۲";
$num3="۳";
$num4="۴";
$num5="۵";
$num6="۶";
$num7="۷";
$num8="۸";
$num9="۹";
Run Code Online (Sandbox Code Playgroud)
Pal*_*ium 64
这是一个简短的功能:
function convert($string) {
$persian = ['?', '?', '?', '?', '?', '?', '?', '?', '?', '?'];
$arabic = ['?', '?', '?', '?', '?', '?', '?', '?', '?','?'];
$num = range(0, 9);
$convertedPersianNums = str_replace($persian, $num, $string);
$englishNumbersOnly = str_replace($arabic, $num, $convertedPersianNums);
return $englishNumbersOnly;
}
Run Code Online (Sandbox Code Playgroud)
您可以使用unicode而不是$persian(我认为)中的字符.
Sae*_*esi 20
我用这个功能.它将波斯语和阿拉伯语数字转换为英语:
function faTOen($string) {
return strtr($string, array('?'=>'0', '?'=>'1', '?'=>'2', '?'=>'3', '?'=>'4', '?'=>'5', '?'=>'6', '?'=>'7', '?'=>'8', '?'=>'9', '?'=>'0', '?'=>'1', '?'=>'2', '?'=>'3', '?'=>'4', '?'=>'5', '?'=>'6', '?'=>'7', '?'=>'8', '?'=>'9'));
}
Run Code Online (Sandbox Code Playgroud)
样品:
echo faTOen("????????????????????"); // 01234567890123456789
Run Code Online (Sandbox Code Playgroud)
您也可以使用相同的方式将英语转换为波斯语:
function enToFa($string) {
return strtr($string, array('0'=>'?','1'=>'?','2'=>'?','3'=>'?','4'=>'?','5'=>'?','6'=>'?','7'=>'?','8'=>'?','9'=>'?'));
}
Run Code Online (Sandbox Code Playgroud)
或英语到阿拉伯语:
function enToAr($string) {
return strtr($string, array('0'=>'?','1'=>'?','2'=>'?','3'=>'?','4'=>'?','5'=>'?','6'=>'?','7'=>'?','8'=>'?','9'=>'?'));
}
Run Code Online (Sandbox Code Playgroud)
Roo*_*125 11
由于波斯语和阿拉伯语区域的人可能使用彼此的语言,这是转换这两种类型的完整解决方案.
function convert2english($string) {
$newNumbers = range(0, 9);
// 1. Persian HTML decimal
$persianDecimal = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');
// 2. Arabic HTML decimal
$arabicDecimal = array('٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩');
// 3. Arabic Numeric
$arabic = array('?', '?', '?', '?', '?', '?', '?', '?', '?', '?');
// 4. Persian Numeric
$persian = array('?', '?', '?', '?', '?', '?', '?', '?', '?', '?');
$string = str_replace($persianDecimal, $newNumbers, $string);
$string = str_replace($arabicDecimal, $newNumbers, $string);
$string = str_replace($arabic, $newNumbers, $string);
return str_replace($persian, $newNumbers, $string);
}
Run Code Online (Sandbox Code Playgroud)
这个更好.我们有两种阿拉伯语和波斯语的数字.我们必须改变一切.
function convert($string) {
$persinaDigits1= array('?', '?', '?', '?', '?', '?', '?', '?', '?', '?');
$persinaDigits2= array('?', '?', '?', '?', '?', '?', '?', '?', '?', '?');
$allPersianDigits=array_merge($persinaDigits1, $persinaDigits2);
$replaces = array('0','1','2','3','4','5','6','7','8','9','0','1','2','3','4','5','6','7','8','9');
return str_replace($allPersianDigits, $replaces , $string);
}
Run Code Online (Sandbox Code Playgroud)
谢谢@Palladium
复制代码时要小心!检查两次如何在编辑器中显示数组,否则您将遇到麻烦!
$fmt = numfmt_create('fa', NumberFormatter::DECIMAL);
echo numfmt_parse($fmt, "?") . "\n";
// 5
Run Code Online (Sandbox Code Playgroud)
小智 5
要将所有波斯数字转换为英文格式,您可以使用此功能:
function Convertnumber2english($srting) {
$srting = str_replace('?', '0', $srting);
$srting = str_replace('?', '1', $srting);
$srting = str_replace('?', '2', $srting);
$srting = str_replace('?', '3', $srting);
$srting = str_replace('?', '4', $srting);
$srting = str_replace('?', '5', $srting);
$srting = str_replace('?', '6', $srting);
$srting = str_replace('?', '7', $srting);
$srting = str_replace('?', '8', $srting);
$srting = str_replace('?', '9', $srting);
return $srting;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27871 次 |
| 最近记录: |