2012-04-02 19 views
6

परिभाषित करना मैंने पढ़ा है कि विंडोज़ पर और कुछ लिनक्स वितरण (यानी बीएसडी 4.11 प्रकार) पर money_format उपलब्ध नहीं है। लेकिन जब मैं उपलब्ध नहीं हूं और इस workaround का उपयोग करते समय सामान्य फ़ंक्शन का उपयोग करके क्रॉस-प्लेटफ़ॉर्म लाइब्रेरी लिखना चाहता हूं, तो मेरी लाइब्रेरी प्रत्येक PHP- आधारित वेब सर्वर पर चलने में सक्षम होगी।क्रॉस-प्लेटफॉर्म मनी_फॉर्मैट फ़ंक्शन (लिनक्स और विंडोज)

क्या यह जांचने के लिए कोई आसान समाधान है कि अंतर्निहित फ़ंक्शन उपलब्ध है या नहीं और ऊपर से समाधान शामिल नहीं किया गया है?

+0

में विभिन्न ऑपरेटिंग सिस्टम के बीच इस तरह की असंगतता क्यों बनाना चाहते हैं, आपके पास उपयोग के लिए तैयार कोड है, तो सवाल क्या है? – kirilloid

+0

मुझे कैसे पता चलेगा कि मंच अंतर्निहित फ़ंक्शन का समर्थन करता है या नहीं? मैं कस्टम का उपयोग नहीं करना चाहता, जब सामान्य उपलब्ध हो ... – Karol

+3

यदि 'function_exists' /' is_callable' – kirilloid

उत्तर

11

फ़ंक्शन money_format() केवल तभी परिभाषित किया जाता है जब सिस्टम में स्ट्रफ़ोन क्षमताएं हों। उदाहरण के लिए, विंडोज नहीं करता है, इसलिए money_format() विंडोज में अपरिभाषित है। इस के साथ

setlocale(LC_ALL, ''); // Locale will be different on each system. 
$amount = 1000000.97; 
$locale = localeconv(); 
echo $locale['currency_symbol'], number_format($amount, 2, $locale['decimal_point'], $locale['thousands_sep']); 

आप कोड है कि वास्तव में के बजाय ऑपरेटिंग सिस्टम सुविधाओं पर निर्भर की पोर्टेबल है लिख सकते हैं:

तो आप इस php कोड का उपयोग कर सकते हैं। PHP में उपलब्ध money_format फ़ंक्शन होने के बिना यह एक्सटेंशन बेवकूफ है। मुझे नहीं लगता कि आप प्रोग्रामिंग भाषा

+0

'PHP 5.5.9, विंडोज 8.1 x64' यह फ़ंक्शन '$ राशि' के साथ कुछ भी नहीं करता है लोकेल का – TheFrost

+0

और यह नकारात्मक संख्याओं के लिए कहां खाता है? – blackmambo

+0

मुद्रा को नकारात्मक प्रारूप में नहीं माना गया :) @blackmambo –