PHP-এ, mb_detect_encoding() অক্ষর এনকোডিং সনাক্ত করতে ব্যবহৃত হয়। এটি প্রার্থীদের একটি আদেশকৃত তালিকা থেকে একটি স্ট্রিংয়ের জন্য অক্ষর এনকোডিং সনাক্ত করতে পারে। এই ফাংশনটি পিএইচপি 4.0.6 বা উচ্চতর সংস্করণে সমর্থিত।
mb_detect_encoding() মাল্টিবাইট এনকোডিং এর সাথে উপযোগী, যেখানে বাইটের সমস্ত ক্রম একটি বৈধ স্ট্রিং গঠন করে না। যদি ইনপুট স্ট্রিং-এ এই ধরনের সিকোয়েন্স থাকে, তাহলে সেই এনকোডিং প্রত্যাখ্যান করা হবে এবং এটি পরবর্তী এনকোডিংয়ের জন্য চেক করবে।
সিনট্যাক্স
string mb_detect_encoding(str $string, str $encoding, bool $strcit)
অক্ষর এনকোডিংয়ের স্বয়ংক্রিয় সনাক্তকরণ কিছু অতিরিক্ত তথ্য ছাড়া সম্পূর্ণরূপে নির্ভরযোগ্য নয়। আমরা বলতে পারি যে অক্ষর এনকোডিং সনাক্তকরণ কী ছাড়াই একটি এনক্রিপ্ট করা স্ট্রিং ডিকোড করার অনুরূপ। একটি কন্টেন্ট-টাইপ HTTP শিরোনামটি ডেটার সাথে সংরক্ষিত বা প্রেরণ করা অক্ষর এনকোডিংয়ের একটি ইঙ্গিতের জন্য ব্যবহার করা যেতে পারে৷
পরামিতি
mb_detect_encoding ফাংশন তিনটি প্যারামিটার গ্রহণ করে −
-
$string − এই প্যারামিটারটি পরীক্ষা করা স্ট্রিংয়ের জন্য ব্যবহার করা হয়।
-
$এনকোডিং − এই প্যারামিটারটি ক্রমানুসারে চেষ্টা করার জন্য অক্ষর এনকোডিংয়ের একটি তালিকার জন্য ব্যবহার করা হয়। তালিকাটি যেকোন বিন্যাসে নির্দিষ্ট করা যেতে পারে যেমন স্ট্রিংয়ের অ্যারে বা কমা দ্বারা পৃথক করা শুধুমাত্র একটি একক স্ট্রিং। যদি এনকোডিং বাদ দেওয়া হয় বা শূন্য হয়, তাহলে বর্তমান detect_order mbstring.detect_order দিয়ে সেট করা হয় কনফিগারেশন বিকল্প বা mb_detect_order() ফাংশন ব্যবহার করা হবে।
-
$strict − এই প্যারামিটারটি আচরণ নিয়ন্ত্রণ করতে ব্যবহৃত হয় যখন স্ট্রিংটি তালিকাভুক্ত কোনো এনকোডিংয়ে বৈধ নয়। যদি কঠোরটি মিথ্যাতে সেট করা হয়, তাহলে এটি নিকটতম মিলিত এনকোডিং ফিরিয়ে দেবে। যদি কঠোরটি সত্যে সেট করা হয় তবে এটি মিথ্যা হিসাবে ফিরে আসবে৷
রিটার্ন মান
এটি সনাক্ত করা অক্ষর এনকোডিং ফেরত দেয়, অথবা তালিকাভুক্ত কোনো এনকোডিং-এ স্ট্রিং বৈধ না হলে এটি মিথ্যা প্রদান করে।
উদাহরণ 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"