PHP Convert Numbers to Word
How to Convert Numbers to Word Using Vanilla PHP
Watch the full tutorial here:
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form action="./backend.php" method="post">
<input type="text" name="txt" placeholder="Enter number (1-999)">
<button type="submit">convert</button>
</form>
</body>
</html>
php
<?php
function numberToWords($num)
{
$ones = [
0 => 'zero',
1 => 'one',
2 => 'two',
3 => 'three',
4 => 'four',
5 => 'five',
6 => 'six',
7 => 'seven',
8 => 'eight',
9 => 'nine',
10 => 'ten',
11 => 'eleven',
12 => 'twelve',
13 => 'thirteen',
14 => 'fourteen',
15 => 'fifteen',
16 => 'sixteen',
17 => 'seventeen',
18 => 'eighteen',
19 => 'nineteen'
];
$tens = [
2 => 'twenty',
3 => 'thirty',
4 => 'forty',
5 => 'fifty',
6 => 'sixty',
7 => 'seventy',
8 => 'eighty',
9 => 'ninety'
];
if ($num < 20) {
return $ones[$num];
} elseif ($num < 100) {
$ten = intdiv($num, 10);
$rest = $num % 10;
return $tens[$ten] . ($rest ? '-' . $ones[$rest] : '');
} elseif ($num < 1000) {
$hundred = intdiv($num, 100);
$rest = $num % 100;
$andPart = $rest ? ' and ' . numberToWords($rest) : '';
return $ones[$hundred] . ' hundred' . $andPart;
} else {
return 'Number out of range (1-999)';
}
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$txt = intval($_POST['txt']);
$converted = numberToWords($txt);
echo "No convert: $txt<br>";
echo "Converted: $converted";
}