PHP-এ, mb_ereg_replace_callback() ফাংশনটি একটি রেগুলার এক্সপ্রেশন সার্চ এবং রিপ্লেস করতে ব্যবহৃত হয় মাল্টিবাইট সমর্থনসহ একটি কলব্যাক ব্যবহার করে। এটি স্ট্রিংগুলোকে স্ক্যান করবে এবং প্যাটার্নের সাথে মিলিয়ে, তারপর মিলিত টেক্সটটিকে কলব্যাক ফাংশনের আউটপুট দিয়ে প্রতিস্থাপন করবে। এই ফাংশনটি mb_ereg_replace() ফাংশনের মতো। এটি PHP 5.4 বা উচ্চতর সংস্করণে সমর্থিত।
সিনট্যাক্স
string mb_ereg_replace_callback(str $pattern, callback $callback, str $string, str $options)
প্যারামিটারসমূহ
ফাংশনটি নিম্নলিখিত চারটি প্যারামিটার গ্রহণ করে:
$pattern – এই প্যারামিটারটি রেগুলার এক্সপ্রেশন প্যাটার্নের জন্য ব্যবহৃত হয়। এটি প্যাটার্নে মাল্টিবাইট ক্যারেক্টার ব্যবহার করতে পারে।
$callback – এই প্যারামিটারটি কল হবে এবং বিষয় স্ট্রিংয়ের মিলিত এলিমেন্টের একটি অ্যারে পাস করা হবে এবং এটিকে রিপ্লেসমেন্ট স্ট্রিং রিটার্ন করতে হবে।
$string – এই প্যারামিটারটি স্ট্রিংটি চেক করতে ব্যবহৃত হয়।
$options – এই প্যারামিটারটি সার্চ অপশন চেক করতে ব্যবহৃত হয়।
নোট – কলব্যাক ফাংশন প্রায়শই শুধু এক জায়গায় mb_ereg_replace_callback()-এ প্রয়োজন হয়। আপনি অ্যানোনিমাস ফাংশনও ব্যবহার করতে পারেন কলব্যাক ঘোষণা করতে mb_ereg_replace_callback() কলের ভিতরে। এটি ব্যবহার করে, আমরা কলের জন্য সব তথ্য এক জায়গায় রাখতে পারি এবং একটি কলব্যাক ফাংশনের নাম দিয়ে ফাংশন নেমস্পেস গুলো পlewা না করি যেটি কোথাও অন্য জায়গায় ব্যবহার করা হয়নি।
রিটার্ন মান
mb_ereg_replace_callback() ফলাফল স্ট্রিংটির জন্য সাফল্য রিটার্ন করে অথবা এররroe False রিটার্ন করে। যদি স্ট্রিংটি বর্তমান এনকোডিং-এর জন্য বৈধ না হয় তবে এটি NULL রিটার্ন করে।
উদাহরণ ১
<?php $result = "April Fools day is 04/01/2019\n"; $result.= "Next match is 12/24/2021\n"; // callback function function next_year($matches) { return $matches[1].($matches[2]+1); } echo mb_ereg_replace_callback( "(\d{2}/\d{2}/)(\d{4})", "next_year", $result); ?>
আউটপুট
April Fools day is 04/01/2020 Next match is 12/24/2022
উদাহরণ ২
অ্যানোনিমাস ফাংশন ব্যবহার করে
<?php // অ্যানোনিমাস ফাংশন ব্যবহার করা হয়েছে $result = "April Fools day is 04/01/2019\n"; $result.= "Next match is 12/24/2021\n"; echo mb_ereg_replace_callback( "(\d{2}/\d{2}/)(\d{4})", function ($matches) { return $matches[1].($matches[2]+1); }, $result); ?>
আউটপুট
April fools day is 04/01/2020 Next match is 12/24/2022
নোট – উদাহরণ ২-এ, অ্যানোনিমাস ফাংশন ব্যবহার করা হয়েছে এবং একটি কলব্যাক ফাংশন সরিয়ে দেওয়া হয়েছে, কিন্তু আউটপুট একই থাকে।