В этой статье мы рассмотрим различные методы преобразования персидских/арабских чисел в английские числа с помощью PHP. Персидские и арабские цифры отличаются от стандартной английской системы счисления, и их преобразование может быть полезно в целях локализации или при работе с многоязычными приложениями. Мы рассмотрим несколько подходов, приведя примеры кода для каждого метода.
Метод 1: использование функции str_replace()
function convertNumbers($input) {
$persian = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');
$english = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
$output = str_replace($persian, $english, $input);
return $output;
}
$input = '۱۲۳۴۵';
$output = convertNumbers($input);
echo $output; // Output: 12345
Метод 2: использование функции strtr()
function convertNumbers($input) {
$persian = '۰۱۲۳۴۵۶۷۸۹';
$english = '0123456789';
$output = strtr($input, $persian, $english);
return $output;
}
$input = '۱۲۳۴۵';
$output = convertNumbers($input);
echo $output; // Output: 12345
Метод 3. Использование специального сопоставления
function convertNumbers($input) {
$persian = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');
$english = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
$output = str_replace($persian, $english, $input);
return $output;
}
$input = '۱۲۳۴۵';
$output = convertNumbers($input);
echo $output; // Output: 12345
Метод 4. Использование регулярных выражений
function convertNumbers($input) {
$output = preg_replace_callback('/\d/u', function ($matches) {
$persian = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');
$english = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
return str_replace($persian, $english, $matches[0]);
}, $input);
return $output;
}
$input = '۱۲۳۴۵';
$output = convertNumbers($input);
echo $output; // Output: 12345
Преобразование персидских/арабских чисел в английские числа в PHP необходимо для приложений, требующих локализации или работающих с многоязычными данными. В этой статье мы рассмотрели четыре различных метода: использование str_replace(), strtr(), пользовательского сопоставления и регулярных выражений. Выберите метод, который лучше всего соответствует вашим потребностям, и интегрируйте его в свой PHP-код, чтобы добиться точного и эффективного преобразования чисел.