Skip to content

Instantly share code, notes, and snippets.

@AminulBD
Created May 18, 2018 12:23
Show Gist options
  • Save AminulBD/01e1a65e2024baff6fa5b8a0cceab2ae to your computer and use it in GitHub Desktop.
Save AminulBD/01e1a65e2024baff6fa5b8a0cceab2ae to your computer and use it in GitHub Desktop.
Spell out money amount in bangla word.
<?php
/**
* Convert number to word in bangla
*
* @param int $number
* @param string $after
* @param string $before
* @return string
*/
function banglaSpellOut($number = 0, $after = '', $before = '')
{
if (($number < 0) || ($number > 999999999)) {
return "নাম্বারটি অতিরিক্ত বড়";
} elseif (!is_numeric($number)) {
return "বৈধ নাম্বার নয়";
}
// Response variable
$res = "";
// Koti
$koti = floor($number / 10000000);
// Lakh
$number -= $koti * 10000000;
$lakh = floor($number / 100000);
// Hajar
$number -= $lakh * 100000;
$hajar = floor($number / 1000);
// Sotok
$number -= $hajar * 1000;
$sotok = floor($number / 100);
// Doshok
$number -= $sotok * 100;
$dosok = floor($number / 10);
// Ekok
$ekok = $number % 10;
if ($koti) {
$res .= banglaSpellOut($koti) . " কোটি ";
}
if ($lakh) {
$res .= banglaSpellOut($lakh) . " লাখ";
}
if ($hajar) {
$res .= (empty($res) ? "" : " ") .
banglaSpellOut($hajar) . " হাজার";
}
if ($sotok) {
$res .= (empty($res) ? "" : " ") .
banglaSpellOut($sotok) . " শত";
}
// Define all bangla string
$spellCollection = [
"", "এক", "দুই", "তিন", "চার", "পাঁচ", "ছয়", "সাত", "আট", "নয়", "দশ",
"এগার", "বার", "তের", "চৌদ্দ", "পনের", "ষোল", "সতের", "আঠার", "ঊনিশ", "বিশ",
"একোশ", "বাইশ", "তেইশ", "চব্বিশ", "পঁচিশ", "ছাব্বিশ", "সাতাশ", "আঠাশ", "ঊনত্রিশ", "ত্রিশ",
"একত্রিশ", "বত্রিশ", "তেত্রিশ", "চৌত্রিশ", "পয়ত্রিশ", "ছত্রিশ", "সতত্রিশ", "আটত্রিশ", "ঊনচল্লিশ", "চল্লিশ",
"একচল্লিশ", "বেয়াল্লিশ", "তেতাল্লিশ", "চোয়াল্লিশ", "পঁয়তাল্লিশ", "ছেচল্লিশ", "সতচল্লিশ", "আটচল্লিশ", "ঊনপঞ্চাশ", "পঞ্চাশ",
"একান্ন", "বাহান্ন", "তেপান্ন", "চোয়ান্ন", "পঁঞ্চান্ন", "ছাপ্পান্ন", "সাতান্ন", "আটান্ন", "ঊনষাট", "ষাট",
"একষট্টি", "বাষট্টি", "তেষট্টি", "চৌষট্টি", "পঁয়ষট্টি", "ছেষট্টি", "সতাষট্টি", "আটষট্টি", "ঊনসত্তর", "সত্তর",
"একাত্তর", "বাহাত্তর", "তেহাত্তর", "চোয়াত্তর", "পঁচাত্তর", "ছিয়াত্তর", "সাতাত্তর", "আটাত্তর", "ঊনআশি", "আশি",
"একাশি", "বিরাশি", "তিরাশি", "চোরাশি", "পঁচাশি", "ছিয়াশি", "সাতাশি", "অটাশি", "ঊননব্বই", "নব্বই",
"একানব্বই", "বিরানব্বই", "তিরানব্বই", "চুরানব্বই", "পঁচানব্বই", "ছিয়ানব্বই", "সাতানব্বই", "আটানব্বই", "নিরানব্বই", "একশ"
];
if ($dosok || $ekok) {
if (!empty($res)) {
$res .= " ";
}
$res .= $spellCollection[$dosok * 10 + $ekok];
}
if (empty($res)) {
$res = "শূন্য";
}
// Add something before string
if ($before) {
$res = $before . $res;
}
// Add something after string
if ($after) {
$res = $res . $after;
}
return $res;
}
@AminulBD
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment