Преобразование персидских, арабских, персидских десятичных и арабских десятичных чисел в английские числа в PHP

В этой статье блога мы рассмотрим различные методы преобразования персидских, арабских, персидских десятичных и арабских десятичных чисел в английские числа с помощью PHP. Мы предоставим примеры кода и пояснения для каждого метода, чтобы вам было проще реализовать желаемое преобразование в ваших проектах.

Метод 1. Сопоставление символов
Один из подходов заключается в сопоставлении персидских и арабских символов с соответствующими английскими цифрами. Вот пример:

function convertToEnglish($number) {
    $persianToEnglish = array(
        '۰' => '0',
        '۱' => '1',
        '۲' => '2',
        '۳' => '3',
        '۴' => '4',
        '۵' => '5',
        '۶' => '6',
        '۷' => '7',
        '۸' => '8',
        '۹' => '9'
    );
    $englishNumber = strtr($number, $persianToEnglish);
    return $englishNumber;
}
$persianNumber = '۱۲۳۴۵';
$englishNumber = convertToEnglish($persianNumber);
echo $englishNumber; // Output: 12345

Метод 2: использование расширения Intl
Другой подход — использовать класс NumberFormatter, предоставляемый расширением Intl. Это расширение предоставляет комплексные возможности локализации и форматирования чисел. Вот пример:

function convertToEnglish($number) {
    $formatter = new NumberFormatter("en", NumberFormatter::DECIMAL);
    $englishNumber = $formatter->parse($number);
    return $englishNumber;
}
$persianNumber = '۱۲۳۴۵';
$englishNumber = convertToEnglish($persianNumber);
echo $englishNumber; // Output: 12345

Метод 3: регулярные выражения
Вы также можете использовать регулярные выражения для замены персидских и арабских цифр их английскими аналогами. Вот пример:

function convertToEnglish($number) {
    $englishNumber = preg_replace_callback('/[\x{0660}-\x{0669}\x{06F0}-\x{06F9}]/u', function ($matches) {
        $persianToEnglish = array(
            '۰' => '0',
            '۱' => '1',
            '۲' => '2',
            '۳' => '3',
            '۴' => '4',
            '۵' => '5',
            '۶' => '6',
            '۷' => '7',
            '۸' => '8',
            '۹' => '9'
        );
        return $persianToEnglish[$matches[0]];
    }, $number);
    return $englishNumber;
}
$persianNumber = '۱۲۳۴۵';
$englishNumber = convertToEnglish($persianNumber);
echo $englishNumber; // Output: 12345

В этой статье блога мы рассмотрели три метода преобразования персидских, арабских, персидских десятичных и арабских десятичных чисел в английские числа с помощью PHP. Метод сопоставления символов, метод расширения Intl и метод регулярных выражений предоставляют различные параметры в зависимости от ваших предпочтений и требований проекта. Эти методы позволяют легко преобразовывать числа между различными системами счисления, обеспечивая лучшую совместимость и понимание, несмотря на языковые барьеры.

Не забудьте выбрать метод, который соответствует вашим конкретным потребностям, и соответствующим образом интегрировать его в свой PHP-код. Наслаждайтесь преобразованием чисел без особых усилий!