• توجه: در صورتی که از کاربران قدیمی ایران انجمن هستید و امکان ورود به سایت را ندارید، میتوانید با آیدی altin_admin@ در تلگرام تماس حاصل نمایید.

تابع تغییر کاراکتر های عربی به فارسی و تبدیل اعداد انگلیسی به فارسی (php)

Mahdi Askari

مدير فنی
سلام به همه دوستان
امیدوارم حالتون خوب باشه
امروز یک نیم ساعتی از کار فائق اومده بودیم و بیکار بودیم و در این فرصت کوتاه یاد یک حرف یکی از دوستان افتادم که دنیال همچین موردی میگشت
که تابعی کاراکتر های عربی رو به فارسی تبدیل کنه
همونطور که میدونید بسیاری از کاربران ایرانی از کیبورد های غیر استاندارد و یا زبان غیر استاندارد روی سیستمشون در حال استفاده هستند
این کاربران مطلبی رو که مینویسند اگر به فونتی ایرانی تبدیل کنند موردی نداره براشون اما اگر به فونت های استاندارد ایرانی تبدیل کنند خواهند دید که نتیجه عوض میشه
و در اکثر جاها خواهند دید که در متن تایپ شدشون حروف «ی» به صورت «ي» (حروف عربی که دو نقطه زیر آن دارد)
و یا مشاهده میکنند حروف «ک» به صورت «ك» که عربی هست در خواهند آمد
این امر هم از زیبایی کار کم میکند و هم برای وبمستر ها یک امر بسیار مهم به حساب میاد که در سئو و پویش از طرف موتور های پویشگر نتایج را عوض خواهد کرد
میتوانید عبارتی را که دارای حروف «ی» به صورت «ي» و بالعکس جستجو کنید و خواهید دید نتایج نمایش داده شده تفاوت خواهند داشت.
اگر از فونت هایی استفاده کنید که این موارد رو به کاربر نشون ندن باز هم در امر جستجو تاثیر گذار هستند زیرا اصل مورد رفع نشده و فقط نمایش اون تغییر کرده.

امروز در وقت استراحت این فایل مبدل رو درست کردم و امروز براتون میذارم

خب برگردیم سر اصل مطلب و تابع این کار
این تابع که در پایین پیوست شده رو میتونید دانلود و در فایلی که میخواید ازش استفاده کنید include کنید
تابع 4 کار را انجام میده


  1. تبدیل «ي» به «ی»
  2. تبدیل «ك» به «ک»
  3. تبدیل اعداد انگلیسی به فارسی
  4. تبدیل اعداد فارسی به انگلیسی

شماره 1 و 2 رو جدا از هم گذاشتم که شاید بعضی ها بخوان این موارد رو تفکیک شده داشته باشن
این تابع دو ورودی داره که ورودی اول یکی از 4 تا مدل تبدیل بالا هست و ورودی دوم رشته ای که میخواید تبدیل روش انجام بشه

اسم تابع هست:

کد:
$conerted_string=convert_let_num($model,$string);

که مدل یکی از 4 مدل بالا و string متنی که قراره تبدیل بشه
و متن خروجی در متغییری که تعریف کردیم قرار میگیره
خب اما مدل که بخواد انتخاب بشه به صورت زیر قرار میدیم


  1. تبدیل «ي» به «ی» ---> 'y'
  2. تبدیل «ك» به «ک» ---> 'k'
  3. تبدیل اعداد انگلیسی به فارسی ---> 'e2p'
  4. تبدیل اعداد فارسی به انگلیسی ---> 'p2e'

کد:
// تبدیل «ي» به «ی»  ---> 'y'
$conerted_string=convert_let_num('y',$string);

// تبدیل «ك» به «ک»  ---> 'k'
$conerted_string=convert_let_num('k',$string);

// تبدیل اعداد انگلیسی به فارسی ---> 'e2p'
$conerted_string=convert_let_num('e2p',$string);

// تبدیل اعداد فارسی به انگلیسی ---> 'p2e'
$conerted_string=convert_let_num('p2e',$string);

فایل رو هم پیوست میکنم میتونید استفاده کنید
دوستان لطفا منبع رو رعایت کنید تا در آینده رقبت به قرار دادن کد های بیشتر داشته باشیم
ممنون:گل:


کپی رایت:
کد:
////////////////////////////////////////////////////////////////////////////////////////
// Convertor Letter and Number file                                                   //
// Created by "Mohammad Mahdi Askari" (mahdiaskari.ir) in 30/7/2014                   //
// Iranjoman Development Team                                                         //
// Please Observe Copyright                                                           //
////////////////////////////////////////////////////////////////////////////////////////


پیوست شد :گل:
موفق باشید:گل:
 

پیوست ها

  • convert_let_num.zip
    542 بایت · بازدیدها: 70
آخرین ویرایش:

admin

Administrator
عضو کادر مدیریت
کار بسیار ارزشمندی هست که در میهن همکار هم از همین تابع شما استفاده شد و جواب گرفته شد.
 

t92

متخصص بخش
میتونید از این نمونه هم استفاده بکنید:

به عنوان مثال برای اعداد فارسی:
PHP:
function persian_digit($srting) {
    $en_num = array("0","1","2","3","4","5","6","7","8","9");
    $fa_num = array("۰","۱","۲","۳","۴","۵","۶","۷","۸","۹");
    return str_replace($en_num, $fa_num, $srting);
}

منبع هم ننویسید :نیش3:
و الی آخر!
 
بالا