Преобразование персидских/арабских чисел в английские числа в PHP: подробное руководство

В этой статье мы рассмотрим различные методы преобразования персидских/арабских чисел в английские числа с помощью 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-код, чтобы добиться точного и эффективного преобразования чисел.