PHP-এ, mb_detect_encoding() ক্যারেক্টার এনকোডিং সনাক্ত করতে ব্যবহৃত হয়। এটি একটি স্ট্রিং-এর জন্য ক্যারেক্টার এনকোডিং সনাক্ত করতে পারে আর্ডারকৃত кандидаটের একটি তালিকা থেকে। এই ফাংশনটি PHP 4.0.6 বা উচ্চতর সংস্করণে সমর্থিত।
mb_detect_encoding() মাল্টিবাইট এনকোডিং-এর সাথে কার্যকর, যেখানে সব বাইট সিকোয়েন্স একটি বৈধ স্ট্রিং গঠন করে না। যদি ইনপুট স্ট্রিংটিতে এমন ধরনের একটি সিকোয়েন্স থাকে, তবে সেই এনকোডিংটি রিজেক্ট করা হবে, এবং এটি পরবর্তী এনকোডিং-এর জন্য চেক করবে।
সিনট্যাক্স
string mb_detect_encoding(str $string, str $encoding, bool $strcit)
কিছু অতিরিক্ত তথ্য ছাড়া অটোমেটিক ক্যারেক্টার এনকোডিং সনাক্ত করা সম্পূর্ণ নির্ভরযোগ্য নয়। আমরা বলতে পারি যে ক্যারেক্টার এনকোডিং সনাক্ত করা কী ছাড়া একটি এনক্রিপ্টেড স্ট্রিং ডিকোড করার মতো। একটি Content-Type HTTP হেডার ডেটা সহ সংরক্ষিত বা প্রেরিত ক্যারেক্টার এনকোডিং-এর নির্দেশনা হিসেবে ব্যবহার করা যেতে পারে।
প্যারামিটারসমূহ
mb_detect_encoding ফাংশনটি তিনটি প্যারামিটার গ্রহণ করে:
$string – এই প্যারামিটারটি পরীক্ষামান স্ট্রিং-এর জন্য ব্যবহৃত হয়।
$encoding – এই প্যারামিটারটি ট্রাই করার জন্য ক্যারেক্টার এনকোডিং-এর একটি তালিকা আর্ডারে ব্যবহৃত হয়। তালিকাটি যেকোনো ফরম্যাটে নির্দিষ্ট করা যেতে পারে স্ট্রিং-এর অ্যারে বা শুধু কমা-সেপারেটেড একটি স্ট্রিং হিসেবে। যদি এনকোডিংটি বাদ দেওয়া হয় বা null হয়, তবে mbstring.detect_order কনফিগারেশন অপশন বা mb_detect_order() ফাংশন দিয়ে সেট করা বর্তমান detect_order ব্যবহার করা হবে।
$strict – এই প্যারামিটারটি তখন আচরণ নিয়ন্ত্রণ করে যখন স্ট্রিংটি লিস্ট করা যেকোনো এনকোডিং-এ বৈধ নয়। যদি strict false-এ সেট করা হয়, তবে এটি সবচেয়ে কাছাকাছি ম্যাচিং এনকোডিং রিটার্ন করবে। যদি strict true-এ সেট করা হয়, তবে এটি false রিটার্ন করবে।
রিটার্ন মান
এটি সনাক্ত করা ক্যারেক্টার এনকোডিং রিটার্ন করে, অথবা এটি False রিটার্ন করবে যদি স্ট্রিংটি লিস্ট করা যেকোনো এনকোডিং-এ বৈধ না হয়।
উদাহরণ ১
স্ট্রিক্ট প্যারামিটার ছাড়া mb_detect_encoding() ফাংশন
<?php $string=""; // এটি বর্তমান detect_order-এ চের এনকোডিং সনাক্ত করে echo mb_detect_encoding($string); // auto mbstring.language অনুযায়ী এক্সপ্যান্ড হয় echo mb_detect_encoding($string, "auto"); // এনকোডিং নির্দিষ্ট করুন echo mb_detect_encoding($string, "JIS, eucjp-win, sjis-win"); // "encodings" প্যারামিটার নির্দিষ্ট করতে অ্যারে ব্যবহার করুন $array_encoding = [ "ASCII", "JIS", "EUC-JP" ]; echo mb_detect_encoding($string, $array_encoding); ?>
আউটপুট
ASCIIASCIIJISASCII
উদাহরণ ২
স্ট্রিক্ট প্যারামিটার ব্যবহার করে mb_detect_encoding() ফাংশন।
<?php // 'áéóú' ISO-8859-1-এ এনকোডেড $string = "\xxE11\xE9\xF3\xxFA"; // UTF-8 একটি কাছাকাছি ম্যাচ হিসেবে বিবেচিত হয় var_dump(mb_detect_encoding($string, ['ASCII', 'UTF-8'], false)); var_dump(mb_detect_encoding($string, ['ASCII', 'UTF-8'], true)); // স্ট্রিক্ট প্যারামিটার ফলাফল পরিবর্তন করে না, যদি এটি একটি বৈধ এনকোডিং পায় 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"