This packages offers ability to convert numbers to words in persian. Words and phrases are fully configurable, so it is possible to use it for all persian language family with configuration.
This package requires PHP 7.4 or higher.
You can install the package via composer:
composer require mojtabaahn/php-persian-number-to-words
$dictionary = new MojtabaaHN\PersianNumberToWords\Dictionary();
$converter = new MojtabaaHN\PersianNumberToWords\PersianNumberToWords($dictionary);
echo $converter->convert(0);
// صفر
echo $converter->convert(-10);
// منفی ده
echo $converter->convert(229);
// دویست و بیست و نه
echo $converter->convert(999999999);
// نهصد و نود و نه میلیون و نهصد و نود و نه هزار و نهصد و نود و نه
It is possible to customize the way output should look like using Dictionary class setter methods.
$dictionary = (new MojtabaaHN\PersianNumberToWords\Dictionary())
->setZero('هیچ')
->setNegative('منهای')
->setSeparator(' ُ ');
// Also ->setUnits(array $units) & -> setSuffixes(array $suffixes) are availabe
$converter = new MojtabaaHN\PersianNumberToWords\PersianNumberToWords($dictionary);
echo $converter->convert(0);
// هیچ
echo $converter->convert(-10);
// منهای ده
echo $converter->convert(229);
// دویست ُ بیست ُ نه
This code is a part of Dictionary class, you can see all default Configuration:
class Dictionary
{
protected string $zero = 'صفر';
protected string $negative = 'منفی';
protected string $separator = " و ";
protected array $units = [
1 => 'یک',
2 => 'دو',
3 => 'سه',
4 => 'چهار',
5 => 'پنج',
6 => 'شش',
7 => 'هفت',
8 => 'هشت',
9 => 'نه',
10 => 'ده',
11 => 'یازده',
12 => 'دوازده',
13 => 'سیزده',
14 => 'چهارده',
15 => 'پانزده',
16 => 'شانزده',
17 => 'هفده',
18 => 'هجده',
19 => 'نوزده',
20 => 'بیست',
30 => 'سی',
40 => 'چهل',
50 => 'پنجاه',
60 => 'شصت',
70 => 'هفتاد',
80 => 'هشتاد',
90 => 'نود',
100 => 'صد',
200 => 'دویست',
300 => 'سیصد',
400 => 'چهارصد',
500 => 'پانصد',
600 => 'ششصد',
700 => 'هفتصد',
800 => 'هشتصد',
900 => 'نهصد'
];
protected array $suffixes = [
3 => 'هزار',
6 => 'میلیون',
9 => 'میلیارد',
12 => 'بیلیون',
15 => 'بیلیارد',
18 => 'تریلیون',
21 => 'تریلیارد',
24 => 'کوآدریلیون',
27 => 'کادریلیارد',
30 => 'کوینتیلیون',
33 => 'کوانتینیارد',
36 => 'سکستیلیون',
39 => 'سکستیلیارد',
42 => 'سپتیلیون',
45 => 'سپتیلیارد',
48 => 'اکتیلیون',
51 => 'اکتیلیارد',
54 => 'نانیلیون',
57 => 'نانیلیارد',
60 => 'دسیلیون',
63 => 'دسیلیارد',
];
// Setters & Helpers...
}
composer test
The MIT License (MIT). Please see License File for more information.