تبدیل اعداد به حروف در php و کدایگنایتر

Share on facebook
Share on google
Share on twitter
Share on linkedin
تبدیل اعداد به حروف در php و کدایگنایتر از قدیم تا به حال یکی از خواسته هایی بوده که در بیشتر برنامه ها مورد استفاده قرار میگیرد به همین دلیل این افزونه ساده و کاربردی را برای شما انتشاد دادیم . ما در اینجا ابتدا به کد php آن می پردازیم و بعد آن را به صورت کتابخانه ای در کد ایگنایتر نیز معرفای می کنیم . توجه داشته باشید ما تبدیل اعداد به حروف در php و کدایگنایتر هم به زبان فارسی هم به زبان انگلیسی بررسی می کنیم.این الگوریتم مناسب برای استفاده در برنامه های حسابداری و برنامه های عملیاتی میباشد.

 

تبدیل اعداد به حروف در php و کدایگنایتر به زبان فارسی

این کد کامل تبدیل اعداد به حروف در php و کدایگنایتر  می باشد که به صورت php می باشد و شما به راحتی می توانید استفاده نمایید کافی است تابع زیر را در هر جایی که می خواهید استفاده نمایید.

public function convert_number($number) {

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


        if (($number < 0) || ($number > 999999999)) {
			throw new Exception("Number is out of range");
		}
		$Gn = floor($number / 1000000);
		/* Millions (giga) */
		$number -= $Gn * 1000000;
		$kn = floor($number / 1000);
		/* Thousands (kilo) */
		$number -= $kn * 1000;
		$Hn = floor($number / 100);
		/* Hundreds (hecto) */
		$number -= $Hn * 100;
		$Dn = floor($number / 10);
		/* Tens (deca) */
		$n = $number % 10;
		/* Ones */
		$res = "";
		if ($Gn) {
			$res .= $this->convert_number($Gn) .  " میلیون و ";
		}
		if ($kn) {
			$res .= (empty($res) ? "" : " ") .$this->convert_number($kn) . " هزار و";
		}
		if ($Hn) {
			$res .= (empty($res) ? "" : " ") . $tows[$Hn] . " و ";
		}
		if ($Dn || $n) {
			if (!empty($res)) {
				$res .= "";
			}
			if ($Dn < 2) {
				$res .= $ones[$Dn * 10 + $n];
			} else {
				$res .= $tens[$Dn];
				if ($n) {
					$res .= " و " . $ones[$n];
				}
			}
		}
		if (empty($res)) {
			$res = "صفر";
		}
		$res=rtrim($res," و");
		return $res;
	}

توضیح کد تبدیل اعداد به حروف در php و کدایگنایتر : این یک تابع بازگشتی می باشد که ابتدا توسط سه آرایه موارد یکان و دهگان و صدگان را معرفی می کنیم

        $ones = array("", "یک",'دو&nbsp;', "سه", "چهار", "پنج", "شش", "هفت", "هشت", "نه", "ده", "یازده", "دوازده", "سیزده", "چهارده", "پانزده", "شانزده", "هفده", "هجده", "نونزده");
        $tens = array("", "", "بیست", "سی", "چهل", "پنجاه", "شصت", "هفتاد", "هشتاد", "نود");
        $tows = array("", "صد", "دویست", "سیصد", "چهار صد", "پانصد", "ششصد", "هفتصد", "هشت صد", "نه صد");

در گام بعدی ما حداکثر و حدا قل برای کدمان قرار می دهیم :

      if (($number < 0) || ($number > 999999999)) {
   throw new Exception("Number is out of range");
}

و عملیات بازگشت پذیر برای محاسبه

$Gn = floor($number / 1000000);
/* Millions (giga) */
$number -= $Gn * 1000000;
$kn = floor($number / 1000);
/* Thousands (kilo) */تبدیل اعداد به حروف در php و کدایگنایتر
$number -= $kn * 1000;
$Hn = floor($number / 100);
/* Hundreds (hecto) */
$number -= $Hn * 100;
$Dn = floor($number / 10);
/* Tens (deca) */
$n = $number % 10;
/* Ones */

و در نهایت رشته کارکتر حروف را می سازیم و بازگشت می دهیم.

$res = "";
if ($Gn) {
   $res .= $this->convert_number($Gn) .  " میلیون و ";
}
if ($kn) {
   $res .= (empty($res) ? "" : " ") .$this->convert_number($kn) . " هزار و";
}
if ($Hn) {
   $res .= (empty($res) ? "" : " ") . $tows[$Hn] . " و ";
}
if ($Dn || $n) {
   if (!empty($res)) {
      $res .= "";
   }
   if ($Dn < 2) {
      $res .= $ones[$Dn * 10 + $n];
   } else {
      $res .= $tens[$Dn];
      if ($n) {
         $res .= " و " . $ones[$n];
      }
   }
}
if (empty($res)) {
   $res = "صفر";
}
$res=rtrim($res," و");
return $res;

 

تبدیل اعداد به حروف در php و کدایگنایتر به زبان انگلیسی

public function convert_number($number) {
   if (($number < 0) || ($number > 999999999)) {
      throw new Exception("Number is out of range");
   }
   $Gn = floor($number / 1000000);
   /* Millions (giga) */
   $number -= $Gn * 1000000;
   $kn = floor($number / 1000);
   /* Thousands (kilo) */
   $number -= $kn * 1000;
   $Hn = floor($number / 100);
   /* Hundreds (hecto) */
   $number -= $Hn * 100;
   $Dn = floor($number / 10);
   /* Tens (deca) */
   $n = $number % 10;
   /* Ones */
   $res = "";
   if ($Gn) {
      $res .= $this->convert_number($Gn) .  "Million";
   }
   if ($kn) {
      $res .= (empty($res) ? "" : " ") .$this->convert_number($kn) . " Thousand";
   }
   if ($Hn) {
      $res .= (empty($res) ? "" : " ") .$this->convert_number($Hn) . " Hundred";
   }
   $ones = array("", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eightteen", "Nineteen");
   $tens = array("", "", "Twenty", "Thirty", "Fourty", "Fifty", "Sixty", "Seventy", "Eigthy", "Ninety");
   if ($Dn || $n) {
      if (!empty($res)) {
         $res .= " and ";
      }
      if ($Dn < 2) {
         $res .= $ones[$Dn * 10 + $n];
      } else {
         $res .= $tens[$Dn];
         if ($n) {
            $res .= "" . $ones[$n];
         }
      }
   }
   if (empty($res)) {
      $res = "zero";
   }
   return $res;
}

 

تبدیل اعداد به حروف در  کدایگنایتر

به منظور استفاده در کد ایگنایتر کافی است که کد بالا را در یک لایبرری کد ایگنایتر لود کنیم در واقع کد را به صورت زیر در پوشه library ساخته و هر جایی که نیاز داشتیم از آن استفاده میکنیم پیشنهاد میکنیم حتما مطلب آموزش کتابخانه ها را در کد ایگنایتر مطالعه نمایید.

پیشنهاد پیرو برای شما :   کتابخانه ها (library) در کد ایگنایتر
<?php
if (!defined('BASEPATH'))
  exit('No direct script access allowed');

class pieronum2word {
   
   public function convert_number($number) {
      if (($number < 0) || ($number > 999999999)) {
         throw new Exception("Number is out of range");
      }
      $Gn = floor($number / 1000000);
      /* Millions (giga) */
      $number -= $Gn * 1000000;
      $kn = floor($number / 1000);
      /* Thousands (kilo) */
      $number -= $kn * 1000;
      $Hn = floor($number / 100);
      /* Hundreds (hecto) */
      $number -= $Hn * 100;
      $Dn = floor($number / 10);
      /* Tens (deca) */
      $n = $number % 10;
      /* Ones */
      $res = "";
      if ($Gn) {
         $res .= $this->convert_number($Gn) .  "Million";
      }
      if ($kn) {
         $res .= (empty($res) ? "" : " ") .$this->convert_number($kn) . " Thousand";
      }
      if ($Hn) {
         $res .= (empty($res) ? "" : " ") .$this->convert_number($Hn) . " Hundred";
      }
      $ones = array("", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eightteen", "Nineteen");
      $tens = array("", "", "Twenty", "Thirty", "Fourty", "Fifty", "Sixty", "Seventy", "Eigthy", "Ninety");
      if ($Dn || $n) {
         if (!empty($res)) {
            $res .= " and ";
         }
         if ($Dn < 2) {
            $res .= $ones[$Dn * 10 + $n];
         } else {
            $res .= $tens[$Dn];
            if ($n) {
               $res .= "" . $ones[$n];
            }
         }
      }
      if (empty($res)) {
         $res = "zero";
      }
      return $res;
   }
}
?>

 

و بعد هر جایی خواستیم آن را صدا می زنیم و استفاده می کنیم به صورت زیر

بارگزاری لایبرری تبدیل-اعداد-حروف-php

$this->load->library('pieronum2word');

استفاده تبدیل-اعداد-حروف-php

$this->pieronum2word->convert_number($all_totalprd)
مدیر پیرو

مدیر پیرو

نظرتان را بیان نمایید

عضویت در خبر نامه