Comjagat.com-The first IT magazine in Bangladesh
  • ভাষা:
  • English
  • বাংলা
হোম > পিএইচপি ফাঙ্কশন ও কার্ল
লেখক পরিচিতি
লেখকের নাম: আনোয়ার হোসেন
মোট লেখা:৭৭
লেখা সম্পর্কিত
পাবলিশ:
২০১৯ - ফেব্রুয়ারী
তথ্যসূত্র:
কমপিউটার জগৎ
লেখার ধরণ:
সফটওয়্যার
তথ্যসূত্র:
সফটওয়্যার
ভাষা:
বাংলা
স্বত্ত্ব:
কমপিউটার জগৎ
পিএইচপি ফাঙ্কশন ও কার্ল
পিএইচপি ফাঙ্কশন ও কার্ল
আনোয়ার হোসেন

গত পর্বে পিএইচপিতে প্যার্টার্ন লেখার নিয়ম, ডিলিমিটার, মেটা ক্যারেক্টার, কোয়ান্টিফায়ার, ক্যারেক্টার ক্লাস ইত্যাদি সম্পর্কে আলোচনা করা হয়েছিল। এ পর্বে পিএইচপির প্রেগ ম্যাচ, প্রেগ রিপ্লেস, প্রেগ ম্যাচ অল, প্রেগ রিপ্লেস কলবেক, ফাঙ্কশন, পিএইচপি কার্ল ইত্যাদি নিয়ে আলোচনা করা হয়েছে।
রেগুলার এক্সপ্রেশন নিয়ে কাজ করার জন্য পিএইচপিতে ৮টি ফাঙ্কশন আছে। প্রয়োজনীয়গুলো নিচে আলোচনা করা হলো
prig match ফাংশন

রেগুলার এক্সপ্রেশনের ফাঙ্কশনগুলোতে সব সময় প্রথম প্যারামিটার হিসেবে প্যাটার্ন থাকে। ফাশনের কাজ হচ্ছে প্যাটার্নটি গিয়ে খুঁজবে যদি মিল পায়, তাহলে ১ এবং যদি না পায় তাহলে ০ রিটার্ন করবে, আর কোনো error হলে False রিটার্ন করে। যেমন

$line = Òtutorialpoint is a informative site about web developmentÓ;
if(preg_match(Ò/\tutorialpoint \b/iÓ,$line)){
echo Òmatch foundÓ;
}else{
echo Òmatch not foundÓ;
}
?>

আউটপুট match found আসবে
ব্যাখ্যা : পিএইচপিতে প্যাটার্ন ডাবল বা সিঙ্গেল কোটেশনের মধ্যে রাখতে হবে। অর্থাৎ প্রতিটি প্যাটার্ন শেষ পর্যন্ত একটা শব্দ বা স্ট্রিং হবে। যাই হোক, প্যাটার্নটি দেখুন দুটি ফরোয়ার্ড স্ল্যাশ (/)-এর ভেতরে রাখা হয়েছে, যা হচ্ছে এখানে ডিলিমিটার (Delimiter)। ডিলিমিটারের বাইরে একটা দেয়া হয়েছে। এটা হচ্ছে প্যাটার্ন মডিফায়ার (সড়ফরভরবৎ)। মডিফায়ার এভাবে দিতে হয়। এর মাধ্যমে বুঝানো হচ্ছে, শব্দটি মিলবে সেটা case insensitive (ছোট বা বড় হাতের যেকোনোটি) হতে পারবে।

এরপর \ন দিয়ে ওয়ার্ড বাউন্ডারি (word boundary) বোঝায়। দেখুনtutorial point-এর দুই পাশেই এই বাউন্ডারি দেয়া হয়েছে। অর্থাৎ এই শব্দের বাইরে কোনো কিছু হতে পারবে না।

তাহলে সবশেষে আমাদের প্যাটার্নটির অর্থ হলো tutorial point শব্দটি যেটা ছোট বা বড় হাতের হবে। আর ফাঙ্কশনটি $ষরহব-এ গিয়ে এই স্ট্রিং (প্যাটার্নটি) খুঁজবে, যেহেতু line-G tutorial point আছে, তাই match found দেখাবে।

prig replace ফাঙ্কশন
এই ফাঙ্কশন দিয়ে কোনো স্ট্রিং বা অ্যারেতে একটা শব্দ খুঁজে সেটা ইচ্ছেমতো যেকোনো স্ট্রিং বা অ্যারে দিয়ে রিপ্লেস করা যাবে। যেমন আপনার সাইটে যদি এমন ফর্ম থাকে, যেখানে ক্রেডিট কার্ড নাম্বার দিতে হবে, কার্ডের নাম্বারে যেহেতু -, স্পেস ইত্যাদি থাকে না তাই ইউজার এসব টাইপ করলে আপনি তা উঠিয়ে নিতে পারেন। যেমন
preg_replace(Ô#[\-\s.]#Õ, ÔÕ, $card);
?>

ব্যাখ্যা : $card ভেরিয়েবল থেকে ইউজারের ইনপুট করা ডাটা নিয়ে পরীক্ষা করে দেখবে যে এখানে হাইফেন (-), স্পেস বা ডট চিহ্ন আছে কি না; যদি থাকে তাহলে সেটা মুছে দেবে (‘’ দিয়ে রিপ্লেস হবে)। ‘’-এর ভেতর যা দেবেন সেটা দিয়েই রিপ্লেস হবে।

preg_match_all() ফাঙ্কশন
এটা preg_match() ফাঙ্কশনের মতোই। শুধু পার্থক্য হচ্ছে এই ফাঙ্কশন প্রথমবার মেলার পর থেমে যাবে না বরং সবগুলো মিল বের করবে। এই ফাঙ্কশন একটা নাম্বার রিটার্ন করবে (যতবার মিলেছে সেই সংখ্যাটি)।

$html = <<

Bangladesh is a country of natural beauty


Please share tutorialpoint in your facebook n twitter


PARA;
if (preg_match_all(Ô@

@Õ, $html, $all_match)>1){
echo Òthere are more than one p tagÓ;
}else{
echo Òless thanÓ;
}
?>

ব্যাখ্যা : এখানে আউটপুট there are more than one p tag এটা আসবে। কারণ $html-এ একাধিক ঢ় ঃধম আছে। $ধষষথসধঃপয ভেরিয়েবলে একটা অ্যারে তৈরি হবে যে মানগুলো মিলবে সেগুলো নিয়ে। এখানে প্যাটার্নে @ হচ্ছে ডিলিমিটার।
preg_replace_callback() ফাংশন
এই ফাঙ্কশন preg_replace() ফাঙ্কশনের মতোই। শুধু পার্থক্য হচ্ছে ঢ়ৎবমথৎবঢ়ষধপব ফাঙ্কশনে যে আর্গুমেন্ট দিয়ে রিপ্লেসমেন্ট হয়, সেই আর্গুমেন্টের জায়গায় পিএইচপি কলব্যাক বসবে। এই কলব্যাকের মাধ্যমে এখানে একটি ফাঙ্কশন কল হবে এবং এই ফাঙ্কশনটি এখানে ওই শব্দগুলো (বা অ্যারে) বসাবে, যেটা দিয়ে রিপ্লেসমেন্ট করা হবে। যেমন
function acroûm($matches) {
$acroûms = array(
ÔPHPÕ => ÔPHP Hypertext ProcessorÕ,
ÔWWWÕ => ÔWorld Wide WebÕ);
return $acroûms[$matches[1]];
}
$text = Ò nwo a daysPHP is the
popular language for WWW.Ó;
$newtext = preg_replace_callback(Ò/(.*)<\/acroûm>/Ó, ÔacroûmÕ,
$text);
print_r($newtext);
?>

ব্যাখ্যা : ১০ নম্বর লাইনে প্যাটার্ন /(.*)<\/acroûm>/-এর মাধ্যমে বুঝানো হচ্ছে যে, এবং এর ভেতর যা আছে সব মিলাবে। এরপর acroûm স্ট্রিং দিয়ে acroûm ফাঙ্কশন কল হবে (কলব্যাক ফাঙ্কশন এভাবে স্ট্রিং লিখে কল করতে হয়, acroûm () এভাবে লিখতে হবে না)। এই ফাঙ্কশন কল হওয়ার সাথে রিপ্লেসমেন্ট টেক্সটগুলো এখানে আসবে (PHP Hypertext Processor এবং World Wide ডবন)।

পিএইচপি কার্ল
পটজখ হচ্ছে এমন একটি টুল/লাইব্রেরি যেটি দিয়ে যেকোনো টজখ থেকে ডাটা নেয়া যায়। এরপর সেই ডাটা নিয়ে আপনার স্ক্রিপ্টে যেকোনো কাজ করতে পারেন। অনেক ল্যাঙ্গুয়েজে পটজখ বাই ডিফল্ট থাকে। পিএইচপিতেও এটা থাকে, তবে বাই ডিফল্ট এনাবল/সক্রিয় থাকে না। এজন্য ঢ়যঢ়.রহর ফাইলটিতে গিয়ে বীঃবহংরড়হ=ঢ়যঢ়থপঁৎষ.ফষষ এই লাইনটি আনকমেন্ট করতে হবে। সাথে সাথে পটজখ সক্রিয় হয়ে যাবে। পটজখ-এর অর্থ হচ্ছে পষরবহঃ টজখ। এই লাইব্রেরি ব্যবহার করে ঐঞঞচ, ঐঞঞচঝ, ঋঞচ, ঞঊখঘঊঞ, ঋওখঊ, খউঅচ ইত্যাদি রিকোয়েস্ট করা যায়। পটজখ-এর কাজ অন্যান্য কিছু ফাঙ্কশন দিয়েও করা যায়। যেমন ভরষবথমবঃথপড়হঃবহঃং(), ভরষব(), ৎবধফভরষব(); তবে পটজখ-এর সব কাজ এগুলো দিয়ে হয় না। ফাইল আপলোড, কুকি, ইউজার যাচাইকরণ (ধঁঃযবহঃরপধঃরড়হ) ইত্যাদি পটজখ দিয়ে করা যায়।
ব্রাউজার দিয়ে কোনো সাইটে গেলে যেরূপ আউটপুট সাইটটি থেকে পান (যে ঐঞগখ রিটার্ন করে), পটজখ দিয়ে স্ক্রিপ্টেই সেই রেসপন্স পাওয়া যায়।
একটি কার্ল রিকোয়েস্ট করতে মূলত ৪ ধাপ পেরোতে হয়।

০১. প্রথমে কার্ল রহরঃরধষরুব করতে হবে। পঁৎষথরহরঃ() ফাঙ্কশন দিয়ে এটি করতে হয়।

০২. এরপর পঁৎষথংবঃড়ঢ়ঃ() ফাঙ্কশন দিয়ে কিছু অপশন সেট করা যায়।

০৩. পঁৎষথবীবপ() ফাঙ্কশন দিয়ে কার্ল রিকোয়েস্টটি এক্সিকিউট করাতে হয়।

০৪. কার্ল বন্ধ করতে হয় পঁৎষথপষড়ংব() ফাঙ্কশন দিয়ে।
কার্ল দিয়ে একটি সাধারণ রিকোয়েস্ট : নিচের কোডটি সেভ করে রান করালেই ঃঁঃড়ৎরধষঢ়ড়রহঃ সাইটটি আপনার ব্রাউজারে খুলবে। ধরুন কোডটি সেভ করেছেন test.php নামে একটা ফাইলে। এখন ব্রাউজারে http://localhost/test.php দিলেই টিউটোরিয়াল পয়েন্ট সাইটটি খুলবে।

//step 1: initiali“e curl
$cr = curl_init();
//step 2 : set some option
curl_setopt($cr, CURLOPT_URL, Ôhttp:/ww/w. tutorialpoint.comÕ);
curl_setopt($cr,CURLOPT_HEADER,0);
//step 3 : execute curl
curl_exec($cr);
//step 4 : finally close curl
curl_close($cr);
?>

পত্রিকায় লেখাটির পাতাগুলো
লেখাটি পিডিএফ ফর্মেটে ডাউনলোড করুন
লেখাটির সহায়ক ভিডিও
২০১৯ - ফেব্রুয়ারী সংখ্যার হাইলাইটস
চলতি সংখ্যার হাইলাইটস