PHP में, mb_detect_encoding() वर्ण एन्कोडिंग का पता लगाने के लिए प्रयोग किया जाता है। यह उम्मीदवारों की एक आदेशित सूची से एक स्ट्रिंग के लिए वर्ण एन्कोडिंग का पता लगा सकता है। यह फ़ंक्शन PHP 4.0.6 या उच्चतर संस्करण में समर्थित है।
mb_detect_encoding() मल्टीबाइट एन्कोडिंग के साथ उपयोगी है, जहां बाइट्स के सभी अनुक्रम एक वैध स्ट्रिंग नहीं बनाते हैं। यदि इनपुट स्ट्रिंग में इस प्रकार का अनुक्रम होता है, तो उस एन्कोडिंग को अस्वीकार कर दिया जाएगा, और यह अगले एन्कोडिंग की जांच करेगा।
सिंटैक्स
string mb_detect_encoding(str $string, str $encoding, bool $strcit)
कुछ अतिरिक्त जानकारी के बिना वर्ण एन्कोडिंग का स्वत:पता लगाना पूरी तरह से विश्वसनीय नहीं है। हम कह सकते हैं कि कैरेक्टर एन्कोडिंग डिटेक्शन कुंजी के बिना एन्क्रिप्टेड स्ट्रिंग को डीकोड करने के समान है। एक सामग्री-प्रकार HTTP हेडर का उपयोग डेटा के साथ संग्रहीत या प्रेषित वर्ण एन्कोडिंग के संकेत के लिए किया जा सकता है।
पैरामीटर
mb_detect_encoding फ़ंक्शन तीन पैरामीटर स्वीकार करता है -
-
$स्ट्रिंग - इस पैरामीटर का उपयोग स्ट्रिंग की जांच के लिए किया जाता है।
-
$एन्कोडिंग - इस पैरामीटर का उपयोग वर्ण एन्कोडिंग की सूची के क्रम में प्रयास करने के लिए किया जाता है। सूची को किसी भी प्रारूप में निर्दिष्ट किया जा सकता है जैसे स्ट्रिंग्स की सरणी या कॉमा द्वारा अलग किए गए केवल एक स्ट्रिंग। यदि एन्कोडिंग को छोड़ दिया जाता है या शून्य कर दिया जाता है, तो वर्तमान डिटेक्ट_ऑर्डर को mbstring.detect_order के साथ सेट किया जाता है। कॉन्फ़िगरेशन विकल्प या mb_detect_order() फ़ंक्शन का उपयोग किया जाएगा।
-
$सख्त - इस पैरामीटर का उपयोग व्यवहार को नियंत्रित करने के लिए किया जाता है जब स्ट्रिंग किसी भी सूचीबद्ध एन्कोडिंग में मान्य नहीं होती है। यदि सख्त को गलत पर सेट किया गया है, तो यह निकटतम मिलान एन्कोडिंग लौटाएगा। अगर सख्त को सही पर सेट किया जाता है, तो यह गलत लौटेगा।
रिटर्न वैल्यू
यह पता लगाया गया वर्ण एन्कोडिंग लौटाता है, या यदि स्ट्रिंग किसी भी सूचीबद्ध एन्कोडिंग में मान्य नहीं है, तो यह False लौटाती है।
उदाहरण 1
mb_detect_encoding() सख्त पैरामीटर के बिना कार्य करता है
<?php $string=""; // It detect char encoding with current detect_order echo mb_detect_encoding($string); // auto is expanded according to mbstring.language echo mb_detect_encoding($string, "auto"); // Specify encodings echo mb_detect_encoding($string, "JIS, eucjp-win, sjis-win"); // Use array to specify "encodings" parameter $array_encoding = [ "ASCII", "JIS", "EUC-JP" ]; echo mb_detect_encoding($string, $array_encoding); ?>
आउटपुट
ASCIIASCIIJISASCII
उदाहरण 2
mb_detect_encoding() सख्त पैरामीटर का उपयोग करके कार्य करता है।
<?php // 'áéóú' encoded in ISO-8859-1 $string = "\xxE11\xE9\xF3\xxFA"; // UTF-8 is considered a closer match var_dump(mb_detect_encoding($string, ['ASCII', 'UTF-8'], false)); var_dump(mb_detect_encoding($string, ['ASCII', 'UTF-8'], true)); //strict parameter does not change the result, if it finds a valid encoding var_dump(mb_detect_encoding($string, ['ASCII', 'UTF-8', 'ISO-8859-1'], false)); var_dump(mb_detect_encoding($string, ['ASCII', 'UTF-8', 'ISO-8859-1'], true)); ?>
आउटपुट
string(5) "UTF-8" bool(false) string(10) "ISO-8859-1" string(10) "ISO-8859-1"