افزونه INTL PHP و کلاس NumberFormatter

·

1 min read

ممکن است مثل امروز من بخواهید یک مقدار عددی را به واحد پولی کشوری و به صورت درست در PHP نمایش بدهید. در این صورت کلاس NumberFormatter می‌تواند کارتان را راه بیاندازد. برای مثال به تکه کد زیر نگاه کنید:

<?php
$number = 1234.56;

$iran = new NumberFormatter("fa-IR", NumberFormatter::CURRENCY);
$formatted3 = $iran->format($number);

print "IRAN: ".$formatted3.'<br>';
?>

خروجی این خطوط به این صورت خواهد بود:

IRAN: ‎ریال۱٬۲۳۵

ولی ممکن است مثل من با این اخطار روبرو شوید:

Fatal error: Class 'NumberFormatter' not found

و این به این معناست که احتمالا افزونه intl در در نصب PHP‌تان فعال نیست. برای تست این که آیا نیاز به نصب دارید یا نه‌، دستور زیر را اجرا کنید:

php -m | grep intl

اگر خروجی‌ای نداشتید یعنی این افزونه نصب نیست. بسته به توزیع مورد استفاده‌تان باید به دنبال روش نصبش باشید. مثلا در Gentoo:

use="intl" emerge --oneshot -a php

یا در بعضی از توزیع‌های محبوب دیگر

// Debian
apt-get install php5-intl
// Centos
yum install php-intl

حالا که کار نصب تمام شد کافیست در فایل php.ini‌تان این خط را وارد کنید:

extension=php_intl.dll

و تمام‌، حالا این افزونه و کلاس NumberFormatter در دسترس‌تان است.