Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
PHP Code to Convert Numbers in Two Words
#1
Introduction:

Using PHP, we can create any web application. Some of them may be using PHP programming language to create Invoice Web Applications. In case of Invoice Applications, It always needs the optionality to convert the number to Word. It is very hard to create a program which converts number to word. Here I am going to post a code which will help you to convert Number to Word Easly.

Create a HTML Page and Paste the following code to it.

PHP Code:
<!DOCTYPE html
<
html lang="en"
<
head
<
meta charset="utf-8"
<
title>Example of converting number to word with PHP</title
<
meta name="description" content="Example of converting number to word with PHP">
<
link href="bootstrap.css" rel="stylesheet">
<
style type="text/css"
.
well {
width500px;
}

.
well h2 {
margin-bottom20px;
}

.
well p {
color#bf0000;
}

button[type='submit'] {
displayblock;
}
</
style>
</
head>
<
body>
<
div class="container">
<
h2>Enter a number to convert it in words</h2>
<
form class="well" method="POST" action="numconvert.php">
 
 <label>Enter a Number</label>
 
 <input type="text" class="span3" name="num" placeholder="Enter a number">
 
 <label>How do you want your output?</label>
 
 <select name="cases">
 
 <option value="uc">All upper case</option>
 
 <option value="lc">All lower case</option>
 
 <option value="cc">Camel case</option>
 
 </select>
 
 <button type="submit" class="btn btn-primary btn-large">Submit</button>
</
form>
</
body>
</
html

Now create another page called numconvert.php and copy and paste the below code to it.

PHP Code:
<?php
/*
Copyright 2007-2008 Brenton Fletcher. http://bloople.net/num2text
You can use this freely and modify it however you want.
*/

/*
w3resource team have modified it to make it nicer applying styles, and some other necessary changes.
*/

$num $_POST['num'];

if (
$_POST['cases'] == "uc")
{
echo 
"<div class='well'><h2>Your output</h2><p>".strtoupper(convertNumber($num))."</p></div>";
}

if (
$_POST['cases'] == "lc")
{
echo 
"<div class='well'><h2>Your output</h2><p>".strtolower(convertNumber($num))."</p></div>";
}

if (
$_POST['cases'] == "cc")
{
echo 
"<div class='well'><h2>Your output</h2><p>".ucwords(convertNumber($num))."</p></div>";
}

function 
convertNumber($num)
{
 
  list($num$dec) = explode("."$num);

 
  $output "";

 
  if($num{0} == "-")
 
  {
 
     $output "negative ";
 
     $num ltrim($num"-");
 
  }
 
  else if($num{0} == "+")
 
  {
 
     $output "positive ";
 
     $num ltrim($num"+");
 
  }
 
  
   
if($num{0} == "0")
 
  {
 
     $output .= "zero";
 
  }
 
  else
 
  {
 
     $num str_pad($num36"0"STR_PAD_LEFT);
 
     $group rtrim(chunk_split($num3" "), " ");
 
     $groups explode(" "$group);

 
     $groups2 = array();
 
     foreach($groups as $g$groups2[] = convertThreeDigit($g{0}, $g{1}, $g{2});

 
     for($z 0$z count($groups2); $z++)
 
     {
 
        if($groups2[$z] != "")
 
        {
 
           $output .= $groups2[$z].convertGroup(11 $z).($z 11 && !array_search(''array_slice($groups2$z 1, -1))
 
            && $groups2[11] != '' && $groups[11]{0} == '0' " and " ", ");
 
        }
 
     }

 
     $output rtrim($output", ");
 
  }

 
  if($dec 0)
 
  {
 
     $output .= " point";
 
     for($i 0$i strlen($dec); $i++) $output .= " ".convertDigit($dec{$i});
 
  }

 
  return $output;
}

function 
convertGroup($index)
{
 
  switch($index)
 
  {
 
     case 11: return " decillion";
 
     case 10: return " nonillion";
 
     case 9: return " octillion";
 
     case 8: return " septillion";
 
     case 7: return " sextillion";
 
     case 6: return " quintrillion";
 
     case 5: return " quadrillion";
 
     case 4: return " trillion";
 
     case 3: return " billion";
 
     case 2: return " million";
 
     case 1: return " thousand";
 
     case 0: return "";
 
  }
}

function 
convertThreeDigit($dig1$dig2$dig3)
{
 
  $output "";

 
  if($dig1 == "0" && $dig2 == "0" && $dig3 == "0") return "";

 
  if($dig1 != "0")
 
  {
 
     $output .= convertDigit($dig1)." hundred";
 
     if($dig2 != "0" || $dig3 != "0"$output .= " and ";
 
  }

 
  if($dig2 != "0"$output .= convertTwoDigit($dig2$dig3);
 
  else if($dig3 != "0"$output .= convertDigit($dig3);

 
  return $output;
}

function 
convertTwoDigit($dig1$dig2)
{
 
  if($dig2 == "0")
 
  {
 
     switch($dig1)
 
     {
 
        case "1": return "ten";
 
        case "2": return "twenty";
 
        case "3": return "thirty";
 
        case "4": return "forty";
 
        case "5": return "fifty";
 
        case "6": return "sixty";
 
        case "7": return "seventy";
 
        case "8": return "eighty";
 
        case "9": return "ninety";
 
     }
 
  }
 
  else if($dig1 == "1")
 
  {
 
     switch($dig2)
 
     {
 
        case "1": return "eleven";
 
        case "2": return "twelve";
 
        case "3": return "thirteen";
 
        case "4": return "fourteen";
 
        case "5": return "fifteen";
 
        case "6": return "sixteen";
 
        case "7": return "seventeen";
 
        case "8": return "eighteen";
 
        case "9": return "nineteen";
 
     }
 
  }
 
  else
 
  {
 
     $temp convertDigit($dig2);
 
     switch($dig1)
 
     {
 
        case "2": return "twenty-$temp";
 
        case "3": return "thirty-$temp";
 
        case "4": return "forty-$temp";
 
        case "5": return "fifty-$temp";
 
        case "6": return "sixty-$temp";
 
        case "7": return "seventy-$temp";
 
        case "8": return "eighty-$temp";
 
        case "9": return "ninety-$temp";
 
     }
 
  }
}
 
     
function convertDigit($digit)
{
 
  switch($digit)
 
  {
 
     case "0": return "zero";
 
     case "1": return "one";
 
     case "2": return "two";
 
     case "3": return "three";
 
     case "4": return "four";
 
     case "5": return "five";
 
     case "6": return "six";
 
     case "7": return "seven";
 
     case "8": return "eight";
 
     case "9": return "nine";
 
  }
}
?>

You are done.

You can customize the script as per your wish.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)