تبدیل اعداد در PHP
یکی از مشکلات برنامه نویسی PHP این است که بعد از محاسبه یا کار با اعداد در سایتهای فارسی شما اعداد انگلیسی دارید. این مشکل را با تابعی کاربردی میتوانید حل کنید.
به ادامهی این آموزش دقت کنید.
تبدیل اعداد انگلیسی به فارسی در PHP
برای تبدیل اعداد فارسی به انگلیسی در PHP کافیست از تابع زیر استفاده کنید:
<?php function fa_number($number) { if(!is_numeric($number) || empty($number)) return '۰'; $en = array("0","1","2","3","4","5","6","7","8","9"); $fa = array("۰","۱","۲","۳","۴","۵","۶","۷","۸","۹"); return str_replace($en, $fa, $number); } ?>
مثال:
<?php $x = 246; echo fa_number($x); // ۲۴۶ ?>
تابع مورد نظر به این شکل کار میکند که در ابتدا عددی را به عنوان یک پارامتر ورودی میگیرید. سپس در بدنهی تابع یک دستور if عدد وارد شده به تابع را چک میکند. در صورتی که مقدار وارد شده به تابع یک مقدار غیر عددی بود یا مقدار خالی بود یک صفر فارسی برخواهد گشت. در ادامه دو آرایه داریم که یکی از آرایهها مسئول نگه داری اعداد یک رقمی انگلیسی و دیگری مسئول نگه داری اعداد یک رقمی فارسی است. در خط آخر تابع fa_number هم یکی از یکی از توابع پیش ساختهی زبان PHP که str_replace است استفاده خواهد شد. عدد مورد نظر شما به یک عدد فارسی تبدیل خواهد شد، در انتها هم یک عدد کاملا فارسی از تابع return خواهد شد.
تابع str_repalce در PHP :
این تابع سه مقدار ورودی دریافت خواهد کرد و محدوده کار این تابع رشته ها در زبان PHP است.
ورودیهای این تابع به ترتیب:
- رشتهی مورد جستجو
- رشتهی جایگزین
- رشتهی اصلی (رشتهای که قصد جایگزینی در آن را داریم.)
این تابع یک مقدار String را return خواهد کرد که با قرار دادن یک متغیر برای آن میتوانید خروجی آن را دریافت کنید. شما همچنین میتوانید از این تابع برای تبدیل اعداد فارسی به انگلیسی استفاده کنید.
برای این کار شکل تابع به صورت زیر است:
<?php function en_number($number) { if(!is_numeric($number) || empty($number)) return '۰'; $en = array("0","1","2","3","4","5","6","7","8","9"); $fa = array("۰","۱","۲","۳","۴","۵","۶","۷","۸","۹"); return str_replace($fa, $en, $number); } ?>
مثال:
<?php $x = "۲۴۶"; echo fa_number($x); // 246 ?>
خب فرق تابع en_number با تابع fa_number در این است.
شما در بخش ورودیهای str_replace ابتدا $fa و سپس $en را پاس میکنید.
یپشنهاد نویسنده: تبدیل اعداد انگلیسی به فارسی در javascript
اگر روشهای بهتری برای “تبدیل اعداد در PHP” در اختیار دارید برای ما بنویسید.
اگه بخوایم اعداد کل سایت فارسی شه چیکار باید کنیم؟
از فونت هایی که اعداد فارسی رو دارن و اعداد انگلیسی داخلشون نیست استفاده کنید.