تبدیل قیمت عددی به حروف

I.NoBody

Active Member
دیروز داشتم دنبال یه فانکشن می گشتم که عدد رو به حروف تبدیل کنه ولی چیز مفیدی پیدا نکردم.
یه تابع انگلیسی پیدا کردم که فارسی اش کردم.
می ذارمش اینجا تا دوستان دیگه هم استفاده کنن.
تا 12 رقم رو میگیره.
لطفاً اگه ایرادی داره دوستان کمک کنن
PHP:
<?php

$singles = array("", " یک", " دو", " سه", " چهار", " پنج", " شش", " هفت", " هشت", " نه", " ده", " یازده", " دوازده", " سیزده", " چهارده", " پانزده", " شانزده", " هفده", " هجده", " نوزده");
$tens = array("", "", " بیست", " سی", " چهل", " پنجاه", " شصت", " هفتاد", " هشتاد", " نود");
$thousands = array("", " هزار"," میلیون"," میلیارد"," تریلیون");

$hundred_pat= array("یک صد", "دو صد", "سه صد", "چهار صد", "پنج صد", "شش صد", "هفت صد", "هشت صد",  "نه صد");
$hundred_rep= array("یکصد", "دویست", "سیصد", "چهارصد", "پانصد", "ششصد", "هفتصد", "هشتصد",  "نهصد");

$more_pat=array(" و هزار", " و میلیون", " و میلیارد", " و تریلیون");
$more_rep=array(" هزار", " میلیون", " میلیارد", " تریلیون");

function ThouConvert($num, $tri) {

global $singles, $tens, $thousands;
$ss = (int) ($num / 1000);
$tt = ($num / 100) % 10;
$thth = $num % 100;


$tempstr = "";


if ($tt > 0)
$tempstr = $singles[$tt] . " صد";

if ($thth < 20)
$tempstr .= $singles[$thth];
else
$tempstr .= $tens[(int) ($thth / 10)] . $singles[$thth % 10];

if ($tempstr != "")
$tempstr .= $thousands[$tri];

if ($ss > 0)
return ThouConvert($ss, $tri+1).$tempstr;
else
return $tempstr;
}

function Num2Word($num) {
global $hundred_pat,$hundred_rep,$more_pat,$more_rep;	
$str="$num";
if(strlen($str)>12)
	return false;

if ($num < 0)
return "منفی".ThouConvert(-$num, 0);

if ($num == 0)
return "صفر";

$result= trim(ThouConvert($num, 0));
$result=str_replace($hundred_pat,$hundred_rep,$result);
$result=str_replace(" "," و ",$result);
$result=str_replace($more_pat,$more_rep,$result);
return $result;
}

$num = 63487621;
echo Num2Word($num);
?>
 

I.NoBody

Active Member
محسن جان مرسی.
مشکلم حل شده.
اینو هم گذاشتم تا بقیه استفاده کنن.
راستی یه سری از شماره های موبایلم پریده( از جمله شماره شما) لطفاً با موبایلت برام شماره حساب خودتو SMS کن.
Tnx
 

جدیدترین ارسال ها

بالا