2009-11-07 16 views
17

मैं यह पता लगाने की कोशिश कर रहा हूं कि ये php.ini सेटिंग्स क्या करती हैं। क्या होता है जब वे अलग-अलग मूल्यों पर सेट होते हैं? वे कब आवश्यक हैं? वे कब हानिकारक हैं?इन PHP mbstring सेटिंग्स क्या करते हैं?

हमेशा की तरह, PHP manual सहायक से कम है।

संपादित: बस स्पष्ट करने के लिए, मैं समझता हूँ कि कैसे वर्ण एन्कोडिंग काम करते हैं, और मैं समझता हूँ कि कैसे PHP के मल्टी-बाइट कार्यों उनके एकल-बाइट समकक्षों से भिन्न होते हैं। मैं उपरोक्त सेटिंग्स क्या करता है इस पर विशिष्टताओं की तलाश में हूं।

EDIT 2: ठीक है, ऐसा लगता है कि वे वास्तव में केवल page on runtime configuration की तुलना में अधिक दस्तावेज़ीकरण प्रदान करते हैं, जिसमें केवल एक पंक्ति सारांश है। इनमें से पहले तीनों में समान नामित फ़ंक्शंस हैं, और फ़ंक्शन संस्करणों का वर्णन करने वाले पृष्ठों पर अधिक जानकारी हैं। मैंने उपरोक्त लिंक जोड़े।

संपादित करें 3: एक उपहार प्राप्त करना। मैं निश्चित रूप से आखिरी तीनों पर क्या करता हूं, इस बारे में विशिष्ट विवरण ढूंढ रहा हूं। वे क्या से बदलते हैं, और वे कब करते हैं?

+0

क्या आप मैनुअल के बारे में व्यावहारिक रूप से कम से कम व्यावहारिक हैं? –

+4

मुझे लगता है कि यह PHP के लिए मैनुअल के रूप में बहुत उपयोगी है। हालांकि, इन सेटिंग्स को समझने के लिए आपको HTTP और वर्ण एन्कोडिंग को भी समझने की आवश्यकता है। और PHP मैनुअल इन चीजों में से किसी एक के लिए मैनुअल नहीं है। –

+0

पुन: संपादित करें 2: मुझे नहीं लगता कि समान नाम फ़ंक्शंस आपके प्रश्न के लिए उपयोगी हैं। उदा।, Mb_language() का तात्पर्य है कि यह केवल ईमेल संदेशों के एन्कोडिंग को प्रभावित करता है, जबकि मुझे लगता है कि mbstring.language का व्यापक प्रभाव है। और mb_http_input() बस * वर्तमान HTTP अनुरोध में डेटा के एन्कोडिंग का पता लगाता है, जो mbstring.http_input की सेटिंग के बारे में कुछ भी नहीं कहता है। –

उत्तर

7

आप mbstring.language को जो भी भाषा आप उपयोग कर रहे हैं उसे बदल सकते हैं। (Source)

भाषा

; language for internal character representation. 
mbstring.language = Neutral ; Set default language to neutral(UTF-8) (default) 
mbstring.language = English 
mbstring.language = Japanese 
mbstring.language = Korean ;For Korean market later 

http_input

; http input encoding. 
mbstring.http_input = pass 
mbstring.http_input = auto 
mbstring.http_input = UTF-8 
mbstring.http_input = UTF-8, SJIS, EUC-JP 

http_output

; http output encoding. mb_output_handler must be 
; registered as output buffer to function 
mbstring.http_output = pass 
mbstring.http_output = UTF-8 

एन्कोडिंग अनुवाद

; enable automatic encoding translation accoding to 
; mbstring.internal_encoding setting. Input chars are 
; converted to internal encoding by setting this to On. 
; Note: Do _not_ use automatic encoding translation for 
;  portable libs/applications. 
mbstring.encoding_translation = On 
3

बिंदु विभिन्न चरित्र सेट एन्कोडिंग का समर्थन करना है। एन्कोडिंग्स (एएससीआईआई, एएनएसआई, यूटीएफ -8, इत्यादि) की एक विस्तृत विविधता है और प्रत्येक के पास अलग-अलग चरित्र सेट और प्रति चरित्र बाइट्स की संख्या है। अलग-अलग PHP फ़ंक्शंस के लिए डिफ़ॉल्ट एन्कोडिंग निर्दिष्ट करने वाली सेटिंग्स।

PHP कई फ़ंक्शंस प्रदान करता है जो आपको इन अलग-अलग एन्कोडिंग से ठीक से निपटने में मदद करते हैं। एक उदाहरण के लिए, mb_strlen() बनाम strlen() देखें।

संक्षिप्त उत्तर यह है कि जब तक कि आप अपने एप्लिकेशन के टेक्स्ट को स्थानीयकृत नहीं कर रहे हैं, या अलग-अलग एन्कोडिंग (आपके डेटाबेस शामिल हैं!) वाले सिस्टम के साथ संचार कर रहे हैं, तो आपको शायद इसके बारे में चिंता करने की आवश्यकता नहीं है।

2

मुझे लगता है कि सब कुछ इस उदाहरण में प्रदर्शन द्वारा समझाया गया है:

http://fr2.php.net/manual/en/function.mb-internal-encoding.php#53265

हालांकि यह में उपयोग नहीं किया है, तो आप mbstring.http_input के उपयोग यह मान सकते हैं।

संबंधित मुद्दे