PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : تبدیل قیمت عددی به حروفی با php



arash_fa
December 6th, 2019, 13:10
در این آموزش تابع مفیدی معرفی می شود که توسط آن می توانید هر قیمتی را به حروف پارسی تبدیل کنید مثلا 1000 ریال را به هزار ریال .

این تابع برای دوستانی که برنامه نویسی فاکتور میکنند مفید می باشد

کل کد ها را در زیر مشاهده می کنید


<?php
/*

made by Arash Tavanaei +989130246374

website : www.zhupin.ir

*/

function mablagh($n){

function to_int($s=''){

$s = preg_replace('/[^\d]+/iu','',$s);
return (int)$s;


}

function num_pos($n){
switch($n){

case 0 :
return '';
case 1 :
return 'هزار';
case 2 :
return 'میلیون';
case 3 :
return 'میلیارد';
}

}
function num_to_string($n){

switch($n){
case '*' :
return '';
case 0 :
return 'صفر';
break;
case 1 :
return 'یک';
break;
case 2 :
return 'دو';
break;
case 3 :
return 'سه';
break;
case 4 :
return 'چهار';
break;
case 5 :
return 'پنج';
break;
case 6 :
return 'شش';
break;
case 7 :
return 'هفت';
break;
case 8 :
return 'هشت';
break;
case 9 :
return 'نه';
break;
case 10 :
return 'ده';
break;
case 11 :
return 'یازده';
break;
case 12 :
return 'دوازده';
break;
case 13 :
return 'سیزده';
break;
case 14 :
return 'چهارده';
break;
case 15 :
return 'پانزده';
break;
case 16 :
return 'شانزده';
break;
case 17 :
return 'هفده';
break;
case 18 :
return 'هجده';
break;
case 19 :
return 'نوزده';
break;

case ($n >=20 && $n<=29):
return 'بسیت';
break;
case ($n >=30 && $n<=39):
return 'سی';
break;
case ($n >=40 && $n<=49):
return 'چهل';
break;
case ($n >=50 && $n<=59):
return 'پنجاه';
break;
case ($n >=60 && $n<=69):
return 'شست';
break;
case ($n >=70 && $n<=79):
return 'هفتاد';
break;
case ($n >=80 && $n<=89):
return 'هشتاد';
break;
case ($n >=90 && $n<=99):
return 'نود';
break;



case ($n >=100 && $n<=199):
return 'یکصد';
break;
case ($n >=200 && $n<=299):
return 'دویست';
break;
case ($n >=300 && $n<=399):
return 'سیصد';
break;
case ($n >=400 && $n<=499):
return 'چهارصد';
break;
case ($n >=500 && $n<=599):
return 'پانصد';
break;
case ($n >=600 && $n<=699):
return 'ششصد';
break;
case ($n >=700 && $n<=799):
return 'هفتصد';
break;
case ($n >=800 && $n<=899):
return 'هشتصد';
break;
case ($n >=900 && $n<=999):
return 'نهصد';
break;


case ($n >=1000 && $n<=999999):
return 'هزار';
break;
case ($n >=1000000 && $n<=999999999):
return 'میلیون';
break;

}




}


$n = to_int($n);
if($n<0){
$n * -1;

}
if(strpos($n,',')===false){
$n = number_format($n);

}

$ex = explode(',',$n);

$c= count($ex);
$last_pos = $c-1;
$l = '';

foreach($ex as $n){
$o = strlen($n) < 3 ? str_repeat('*',3-strlen($n)).$n : $n;
$is = false;

$sadgan = $o[0]=='*' ? '*' : (int)$o[0] * 100;
$dahgan = (int)$o[1] * 10;
$yekan = (int)$o[2] * 1;
$pp = num_pos($last_pos);


if($sadgan>0 && ($dahgan+$yekan) > 0){
$l .= num_to_string($sadgan ).' - ';
$is = true;

} elseif($sadgan>0 && ($dahgan+$yekan) == 0){
$l .= num_to_string($sadgan );
$is = true;
}






if($dahgan==10 && ($yekan>0 && $yekan<=9)){
$l .= num_to_string($dahgan+$yekan );
$is = true;

} elseif($dahgan==10 && $yekan==0){
$l .= num_to_string($dahgan ).' - ';
$is = true;

}elseif($dahgan>10 && ($yekan>0 && $yekan<=9)){
$l .= num_to_string($dahgan ).' - '.num_to_string($yekan );
$is = true;

}elseif($dahgan>10 && $yekan==0 ){
$l .= num_to_string($dahgan );
$is = true;

}
if($dahgan==0 && ($yekan>0 )){
$l .= num_to_string($yekan );
$is = true;

}

$l .= ' '.$pp;
$l .= $is ? ' - ' : '';
$last_pos--;



}
$l =trim($l);
$l = trim($l,'-');
$l = trim($l,' - ');
$l = str_replace('-','و',$l);
return $l;


}


?>



این بدنه تابع است

برای بهره بردن از آن کافیست کد زیر را بنویسید


<?php
echo mablagh(138957638); ?>