تغییر اعداد انگلیسی به فارسی با php

mmnaderi

تازه وارد
هر جا که میرویم فقط اعداد انگلیسی میبینیم: انگلیسی، انگلیسی و انگلیسی. ولی هیچ کس به فکر نمیافتد که چرا فارسی ننویسیم؟!! کاراکترهای اعداد فارسی هم وجود دارد ولی بر روی ویندوز و کیبورد آن اعداد انگلیسی تنظیم شدهاند و باید آن ها را تغییر دهیم. در word هم همینطور. (برای تغییر اعداد انگلیسی به فارسی در ورد به مراجعه کنید.)

در وب هم همینطور است ولی امروز میخواهیم تابعی در PHP بنویسیم که متنی که حاوی اعداد انگلیسی است را بگیرد، اعداد آن را به فارسی تبدیل کند و در آخر متن را در خروجی نمایش بدهد.

تابع تغییر اعداد انگلیسی به فارسی با PHP

خیلی ساده است و نیازی به توضیح ندارد! ابتدا آرایهای به نام persian_digits تعریف میکنیم و اعداد فارسی را به ترتیب در آن قرار میدهیم. بعد هم آرایهی دیگری به نام english_digits تعریف میکنیم و اعداد انگلیسی را در آن قرار میدهیم. بعد هم با استفاده از تابع str_replace آرایهی فارسیها را با آرایهی انگلیسیها جابهجا میکنیم. (یعنی عدد اول از این آرایه را با عدد اول از آرایهی دیگر عوض میکند بعد عدد دوم با عدد دوم و …)

کد به این صورت است:


کد:
<?php
    function fa_digits($text){
        $persian_digits = array('۰','۱','۲','۳','۴','۵','۶','۷','۸','۹');
        $english_digits = array('0','1','2','3','4','5','6','7','8','9');
        $text = str_replace($english_digits, $persian_digits, $text);
        return $text;
    }
?>
و برای فراخوانی تابع مانند زیر عمل میکنیم:


کد:
<?php
    echo(fa_digits('متن حاوی اعداد انگلیسی مانند: ۱۲۳۴۵۶۷۸۹۱۰'));
?>
تابع تغییر اعداد عربی به فارسی با PHP

خب با این تابع میتوان هر نوع عددی را به عدد فارسی تبدیل کرد. تنها کافیست به جای اعداد انگلیسی، اعداد عربی را قرار دهید و به جای تغییر اعداد انگلیسی به فارسی، اعداد عربی را به فارسی تغییر دهید.


کد:
<?php
    function fa_digits($text){
        $persian_digits    =    array('۰','۱','۲','۳','۴','۵','۶','۷','۸','۹');
        $arabic_digits = array('٠','١','٢','٣','۴','۵','۶','٧','٨','٩');
        $text = str_replace($arabic_digits, $persian_digits, $text);
        return $text;
    }
    echo(fa_digits('متن حاوی اعداد عربی است: ٠١٢٣۴۵۶٧٨٩'));
?>


 
بالا