PDA

View Full Version : آموزش: تغییر اعداد انگلیسی به فارسی با PHP



MMNaderi.ir
شنبه 10 فروردین 1392, 10:42 صبح
هر جا که می‌رویم فقط اعداد انگلیسی می‌بینیم: انگلیسی، انگلیسی و انگلیسی. ولی هیچ کس به فکر نمی‌افتد که چرا فارسی ننویسیم؟!! کاراکتر‌های اعداد فارسی هم وجود دارد ولی بر روی ویندوز و کیبورد آن اعداد انگلیسی تنظیم شده‌اند و باید آن ها را تغییر دهیم. در word هم همینطور. (برای تغییر اعداد انگلیسی به فارسی در ورد به این مطلب (http://elschool.ir/%D9%81%D8%A7%D8%B1%D8%B3%DB%8C%E2%80%8C%D9%86%D9%8 8%DB%8C%D8%B3%DB%8C-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D8%AF%D8%B1-%D9%88%D8%B1%D8%AF/) مراجعه کنید.)

در وب هم همینطور است ولی امروز می‌خواهیم تابعی در 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('متن حاوی اعداد انگلیسی مانند: 12345678910'));
?>


تابع تغییر اعداد عربی به فارسی با 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('متن حاوی اعداد عربی است: 012345678910'));
?>

منبع (http://elschool.ir/%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D8%A7%D9%86%DA%AF%D9%84%DB%8C%D8%B3%DB%8C-%D8%A8%D9%87-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A8%D8%A7-php/)

رضا قربانی
شنبه 10 فروردین 1392, 23:01 عصر
جدا از این ، خود سایت jdf توابع جلالی این امکان رو به کاربران داده.
موفق باشید