2012-01-26 16 views
16

मैं काम नहीं कर सकता कि मुद्रा प्रतीक कैसे प्राप्त करें?PHP money_format(); £ साइन इन जीबीपी

फिलहाल मैं

setlocale(LC_MONETARY, 'en_GB'); 
money_format('%i', 1000); 

कौन सा मुझे निर्गम का उपयोग कर रहा

GBP1,000 

लेकिन मैं चाहता हूँ

£1,000 

मैं PHP मैनुअल की जाँच की है, लेकिन यह नहीं ' यह सहायक है।

कोई विचार?

+0

हो सकता है कि इस में मदद मिलेगी: http://stackoverflow.com/questions/6060008/money-format-showing – Tim

+1

@Tim कि बस आपको बताता है कि बजाय £ के £ डाल करने के लिए, लेकिन मैं वास्तव में £ प्रदर्शित करने के लिए मिल सकता है। यह सिर्फ अपनी जगह में जीबीपी दिखाता है। धन्यवाद हालांकि :) –

+0

मेरी मशीन 'जीबीपी' प्रिंट भी नहीं करती है। : o –

उत्तर

18

क्या आपने यह कोशिश की है?

setlocale(LC_MONETARY, 'en_GB'); 
utf8_encode(money_format('%n', 1000)); 
+0

यह करीब है मुझे लगता है, अब मुझे एक हीरा मिल रहा है? बीच में।मेरे पास यूआरएफ -8 के रूप में मेरा अक्षर है जो अजीब है: एस –

+6

बस utf8_encode (money_format ('% n', 1000) जोड़ें; और आप प्रतीक देखेंगे ... :) – SERPRO

+1

आह! बढ़िया, आपकी मदद के लिए धन्यवाद :) –

-1

& पाउंड के साथ जीबीपी को प्रतिस्थापित करने के लिए एक आसान समाधान हो सकता है; (रिक्त स्थान के बिना) money_format के बाद।

+0

PHP मैनुअल पर वे दिखाते हैं कि आप $ साइन का उपयोग कर सकते हैं ताकि आप £ –

+1

पर अपना स्थान सेट कर सकें क्योंकि आपने 'setlocale (LC_MONETARY, 'en_GB.UTF-8') का उपयोग करने का प्रयास किया है;' । यह @tim वेबसाइट पर एक टिप्पणी के रूप में रखा गया था। – Aidan

-6

str_replace() फ़ंक्शन का उपयोग एक विकल्प है।

£ - ब्रिटिश पाउंड - £ (163)

// Search for the GBP in your string (subject) then replace for the symbol code 
$search = "GBP"; 
$replace = "£"; 
$subject = "GBP"; 
echo str_replace($search, $replace, $subject); 
+0

यह 'money_format' का उपयोग करने का गलत तरीका है। – rickyduck

+0

यह केवल एचटीएमएल पेज –

18

यह मेरे लिए काम किया:

setlocale(LC_MONETARY, 'en_GB.UTF-8'); 
money_format('%n', 1000); 

यह चयनित समाधान के समान है, लेकिन यह मेरे लिए काम नहीं किया। क्यूं कर? कारण यह है कि स्थान en_GB अपने सिस्टम में परिभाषित नहीं किया गया है केवल en_GB.UTF-8:

$ locale -a | grep "en_GB" 
en_GB.utf8 

इसके अलावा, UTF-8 codeset सीधे का उपयोग करके, utf8_encode करने के लिए अतिरिक्त कॉल बचाया जा सकता है।

+0

पर प्रदर्शित करने के लिए समझ में आता है, चयनित उत्तर से अधिक लचीला है, क्योंकि यह अलग-अलग इलाकों का उपयोग करते हुए कार्यों को फिर से लिखने की आवश्यकता को रोकता है। – rickyduck

0

उपरोक्त हलचल में से कोई भी मेरे लिए काम नहीं करता है। वे £ साइन से पहले 'A' प्रिंट कर रहे थे। इसके बजाय निम्नलिखित एडन और Diegos soloutions पर निर्माण मैं कर दिया है:

setlocale(LC_MONETARY, 'en_GB.UTF-8'); 
echo (money_format('%n', $bagel->Price)); 
2

यहाँ आप के उन लोगों, मेरे जैसे, जो सोचते हैं कि PHP के money_format भयानक है के लिए एक समाधान है।

return '£' . number_format((float) $amount, 2, '.', ','); 
संबंधित मुद्दे