পিএইচপি লার্নিং সিরিজ-২

পিএইচপি - বেসিক আলোচনা
পূর্বের আলোচনায় আমরা পিএইচপি এর সংক্ষিপ্ত ইতিহাস এবং ইনস্টলেশন ও কনফিগারেশন দেখেছি। এখন আমরা পিএইচপিতে প্রোগ্রামিং শুরু করতে যাচ্ছি।

ডিলিমিটার বা পিএইচপি সীমানা নির্ধারন

পিএইচপি-র বড় সুবিধা হল আপনি যেকোন এইচটিএমএল পেজের ভিতরেই পিএইচপি কোড লিখতে পারেন। কোডগুলির সাহায্যে কাজ সম্পাদনের জন্য পেজটিকে পিএইচপি ইঞ্জিনের অভ্যন্তরে পাঠাতে হবে পঠন বা ইন্টারপ্রেটেশন করতে। প্রতিটি লাইনকে পিএইচপি লাইন হিসেবে বিবেচনা করা ইন্টারপ্রেটারের জন্য শক্তি অপচয় তাই পিএইচপি ইঞ্জিনের জন্য কোন একটি উপায়ে নির্ধারন করা প্রয়োজন একটি পেজের কোন অংশে পিএইচপি কোড রয়েছে। এটি করার জন্য পিএইচপি কোডের জন্য একটি সীমানা নির্ধারন করে দেয়া হয়।

সীমানা নির্ধারনের/ডিলিমিটের পদ্ধতিগুলি আমরা এখন আলোচনা করবো-


<?php


Welcome!

print "Every age has a language of its own ";
?>
PHP First Program

উপরের অংশটুকু যেকোন টেক্সট এডিটরে লিখে test.php নামে সেভ করুন আপনার ওয়েব সার্ভারের ফোল্ডারে। লিনাক্সে করুন /var/www/your_folder/

এবং উইন্ডোজে G:\xampplite\htdocs\your_folder\ পাথে।

এবার ব্রাউজারের এড্রেসবারে লিখুন- http://localhost/your_folder/test.php

উপরের কোডে অংশে পিইএইচপি কোড লেখা হয়েছে। এ অংশটুকুই কেবল পিএইচপি ইঞ্জিন ইন্টারপ্রেট করবে।

বাকী পদ্ধতিগুলি হচ্ছে-

print "This is another PHP example.";
?>





উপরের যেকোন একটি পদ্ধতিতে পিইএইচপি কোডের সীমা নির্ধারন করা যায় অর্থাৎ পিএইচপিতে কোড লেখার জন্য এভাবে ইন্টারপ্রেটারকে নির্দেশ দিতে হবে। যদি এর কোন একটি দিয়ে পিএইচপি কোডের সীমানা নির্ধারন না করা হয় তবে কোডগুলিকে সাধারন এইচটিএমএল এর মত বিবেচনা করবে ওয়েব সার্ভার বা পিএইচপি ইন্টারপ্রেটার ইঞ্জিন।

উপরোক্ত পদ্ধতিগুলির মধ্যে প্রথম নিয়মটি অনুসরন করা ভাল।

আপনি এভাবে একটি পেজে যতখুশি ততবার পিএইচপি ডিলিমিটার /সীমানা নির্ধারক ব্যবহার করতে পারেন।



<?php echo "Welcome to my site!";?>


$date = "May 11, 2011";
?>

Today's date is




কমেন্টস বা মন্তব্য

আপনার নিজের সুবিধার জন্যই হোক বা ভবিষ্যতে আপনার লেখা কোড মেইনটেইনকারী প্রোগ্রামার এর জন্যই হোক, আপনার কোডের অভ্যন্তরে মন্তব্য বা কমেন্টস অর্ন্তভুক্ত করার প্রয়োজনীয়তা অপরিহার্য। পিএইচপিতে বেশ কয়েক ধরনের কমেন্টস প্রদানের সিনট্যাক্স সাপোর্ট রয়েছে। এখন আমরা সেগুলি নিয়ে আলোচনা করবো।

//Title: This is Hello Program
//Author: Your name
print “Hello World!”;
?>

উপরে // দিয়ে শুরু করা লাইন দুটি হচ্ছে কমেন্টস। এটিকে সিঙ্গেল লাইন কমেন্টস বলা হয়। // চিহ্ন দিয়ে শুরু করা লাইনগুলি পিএইচপি ইঞ্জিন মন্তব্য হিসেবে ধরে নেবে ও কোন ফলাফল দেবে না। এভাবে আমরা কোডের ভিতর কোন কিছু মন্তব্য হিসেবে লিখে রাখতে পারি যাতে তা রেফারেন্স হিসেবে ভবিষ্যতে ব্যবহার করা যায়। মনে রাখবেন কমেন্টস প্রোগ্রামার এর সুবিধার জন্য লেখা হয়, এটি মূল প্রোগ্রামের জন্য কোন ইনস্ট্রাকশন নয়।

#Title: This is Hello Program
#Author: Your name
print “Hello World!”;
?>

উপরে শেল স্টাইলের/সি++ সিনট্যাক্স দেখানো হয়েছে। # চিহ্নের মাধ্যমে ও কমেন্টস লেখা যায় পিএইচপিতে ।

/*Title: This is Hello Program
Author: Your name
Date: 11 March, 2011
*/
print “Hello World!”;
?>

একাধিক লাইন ব্যাপী কমেন্টস লেখার জন্য সি-স্টাইলের মাল্টিপল লাইন সিন্ট্যাক্স ব্যবহার করা হয়। এতে সময় ও শ্রম উভয়ই বাঁচে বড়সড় কমেন্টস লেখার সময়। যেমন উপরে /* ও */ অংশের মধ্যে যে অংশ লেখা হবে তার সবটাই কমেন্টস বা মন্তব্য হিসেবে বিবেচিত হবে।

আউটপুট বা ফলাফল প্রদর্শন

অধিকাংশ ওয়েব এপ্লিকেশন ব্যবহারকারীকে ফলাফল প্রদর্শন করে থাকে। সুলিখিত কোড/স্ক্রিপ্টসমূহ ব্যবহারকারীদের সাথে ইন্টারফেস এবং রিকোয়েস্ট রেসপন্স এর মাধ্যমে সর্বদা যোগাযোগ করে থাকে। পিএইচপিতে বেশ কয়েকটি উপায়ে তথ্য প্রদর্শন করা যায় যা আমরা এখন দেখব-

print()


boolean print (argument)

print স্টেটমেন্ট এর সাহায্যে ব্যবহারকারীকে তথ্য প্রদর্শন করা যায় এবং এটি সরাসরি স্ট্রিং অথবা ভেরিয়েবল উভয়ই প্রদর্শন করতে সক্ষম। নিচে আমরা এর কয়েকটি ব্যবহার দেখব।

print(“ I love computer programming.
”);
?>

$hobby = “computer programming”;
print(“
I love computer $hobby
”);
?>

print(“ I love
computer programming.
”);
?>

$hobby = “computer programming”;
print(“
I love “ . $hobby . “
”);
?>

উপরের প্রত্যেকটি প্রোগ্রামে একই আউটপুট বা ফলাফল পাওয়া যাবে। এভাবে আপনি নিজে নিজে ও বিভিন্ন উদাহরন তৈরী করে অনুশীলন করতে পারেন।

সর্বশেষ উদাহরনটি একটু জটিল মনে হতে পারে। এখানে আসলে তিনটি ভিন্ন ভিন্ন স্ট্রিংকে (বাক্য/লেখাকে) পিরিয়ড বা ডট অপারেটর দিয়ে যুক্ত করা হয়েছে।

echo()

void echo (string argument1 [, ....string argumentN])

দুটি পার্থক্য ছাড়া echo স্টেটমেন্ট উপরের print এর মতই কাজ করে থাকে। প্রথমতঃ এটি কোন জটিল কাজে ব্যবহার করা যায় না কারন এটি void রিটার্ন করে অন্যদিকে print() একটি বুলিয়ান ভ্যালু রিটার্ন করে থাকে। দ্বিতীয়তঃ echo() একাধিক স্ট্রিংকে প্রদর্শন করতে সক্ষম। অবশ্য print() এর ক্ষেত্রে ডট বা পিরিয়ড অপারেটর ব্যবহার করে একই কাজ উপরে আমরা করে দেখিয়েছি তবে echo() একটু বেশী সুবিধা দেয়। নিচে একটি উদাহরন দেখিঃ

$year = “1971”;
$country = “Bangladesh”;
echo $country, “ got freedom in “, $year;
?>

printf()

boolean printf (string format [, mixed args])

printf() ফাংশান print() এর মতই কাজ করে থাকে তবে একটি পার্থক্য হচ্ছে args এর জায়গাতে যে argument সমূহ ব্যবহার করবেন তাকে format অংশের ফরম্যাট অনুযায়ী ফরম্যাট করে প্রদর্শন করবে। format প্যারামিটারের সাহায্যে এলাইনমেন্ট, পজিশন, নাম্বার ফরম্যাটিং ইত্যাদি কাজ করা যায়। যেমনঃ argument সমূহকে %b এর সাহায্যে বাইনারী নাম্বার, %c এর সাহায্যে আসকি মান, %d এর সাহায্যে ডেসিম্যাল নম্বর, %f এর সাহায্যে ফ্লোটিং পয়েন্ট নম্বর হিসেবে দেখানো যায়।

এবার কিছু সহজ উদাহরন দেখি।

printf("$%01.2f", 43.2); // $43.20
printf("%d nokia %s", 100, "mobible"); // 100 nokia mobiles
printf("%15s", "Some text"); // Some text

sprintf()

string sprintf (string format [, mixed arguments])

sprintf() ফাংশানটি printf() ফাংশানের মতই কাজ করে তবে ফলাফলটি স্ট্যান্ডার্ড আউটপুট/মনিটরে প্রদর্শিত না হয়ে একটি স্ট্রিং ভেরিয়েবলে নিয়োজিত করে।

$cost = sprintf("$%01.2f", 43.2); // $cost = $43.20

আজ এ পর্যন্তই পরবর্তীতে আমরা ডেটা টাইপ নিয়ে আলোচনা করবো।

পিএইচপি লার্নিং সিরিজ-১

প্রোগ্রামিং এর উপর লেখার ইচ্ছা ছিল অনেক আগে থেকেই। তবে ব্যস্ত থাকার কারনে সময় করে উঠতে পারিনি এতদিন। তাছাড়া জটিল বিষয় নিয়ে লিখতে হলে বিষয়টি নিয়ে একটু চিন্তা ভাবনার প্রয়োজন ও বেশী হয়।

এ সিরিজটিতে চেষ্টা করবো নতুনদের জন্য ফিডব্যাক হিসেবে তাদের বিভিন্ন প্রশ্নের উত্তর দিতে। এজন্য কমেন্ট করতে পারেন এ টপিকে।

তাহলে আসুন শুরু করি।

পিএইচপি সম্পর্কে প্রাথমিক ধারনা

পিএইচপি উৎপত্তির ইতিহাস জানতে হলে আমাদেরকে ১৯৯৫ সালের দিকে তাকাতে হবে যখন রাসমাস লারডর্ফ নামের একজন সফটওয়্যার ডেভেলপার তার অনলাইন রেজুমে/সিভি কতজন ভিজিটর দেখেছেন/পড়েছেন তা দেখার জন্য একটি পার্ল/সিজিআই স্ক্রিপ্ট তৈরী করেন। স্ক্রিপ্টটি মূলত দুটি কাজ করত। একঃ ভিজিটরদের তথ্য নিবন্ধন করে রাখা এবং দুইঃ ভিজিটরদের পরিদর্শন সংখ্যার তথ্য ওয়েব পেজে প্রদর্শন করা। বর্তমানে যে ওয়েব ভুবনের সাথে আমরা পরিচিত তা তখনকার দিনে শৈশব অতিক্রম করছে বলা যায় তাই এ ধরনের টুলস তখন পাওয়া যেত না, এবং এর ফলশ্রুতিতে ওয়েবসাইট পরিদর্শনকারীগন লারডর্ফ এর স্ক্রিপ্ট সম্পর্কে জানার জন্য ইমেইল করতে লাগলেন। পরবর্তীতে লারডর্ফ তার পারসোনাল হোম পেজ (পিএইচপি) নামে খ্যাত টুলস বিতরন করা শুরু করেন।

এরপর লারডর্ফ উৎসাহিত হয়ে ল্যাংগুয়েজটি দ্রুত উন্নয়ন করতে থাকেন এবং ১৯৯৭ এর নভেম্বরে পিএইচপি ২.০ সংস্করন প্রকাশ করেন। পিএইচপি এর জনপ্রিয়তা বৃদ্ধির ফলে এ ভার্সনটিতে পৃথিবীর বিভিন্ন প্রান্তের প্রোগ্রামারগন প্রচুর পরিমানে উন্নয়ন ও উৎকর্ষতা সাধন করতে থাকেন।

তাই এ নতুন রিলিজটি অত্যন্ত জনপ্রিয়তা পায় এবং একটি কোর ডেভেলপার টিম লারডর্ফ এর সাথে যোগদান করে পিএইচপি এর উন্নয়ন কাজ শুরু করে। তারা এইচটিএমএল এর পাশাপাশি সরাসরি পিএইচপি কোড অন্তর্ভুক্ত করার মূল কনসেপ্টটি অক্ষুন্ন রাখেন এবং নতুন করে পিএইচপি ইঞ্জিনটি লেখা হয় যার ফলে পিএইচপি ৩.০ সংস্করন জন্মলাভ করে। জুন, ১৯৯৮ এ ভার্সন ৩.০ প্রকাশের সময় সারাবিশ্বে প্রায় ৫০,০০০ এর ও বেশী ব্যবহারকারী তাদের ওয়েব পেজে পিএইচপি ব্যবহার করছিলেন।

এখানে উল্লেখ্য যে, ১৯৯৭ সালেই পিএইচপি (পারসোনাল হোম পেজ) নামের ভিন্নরূপ বা পিএইচপি হাইপারটেক্সট প্রিপ্রসের (পিএইচপি) নামটি চালু হতে শুরু করে।

পরবর্তী দু’বছরে এর উন্নয়ন অবিশ্বাস্য গতিতে চলতে থাকে, শত শত নতুন ফাংশন যোগ হতে থাকে এবং ব্যবহারকারীর সংখ্যা খুব দ্রুত বাড়তে থাকে। ১৯৯৯ সালের শুরুতে নেটক্রাফট থেকে প্রকাশিত (http://www.netcraft.com/) এক পরিসংখ্যান রিপোর্ট থেকে এর ব্যবহারকারী ১০ লক্ষের ও বেশী বলে জানা যায় যা একে পৃথিবীর অন্যতম জনপ্রিয় স্ক্রিপ্টিং ল্যাংগুয়েজের মর্যাদা এনে দেয়। এটির জনপ্রিয়তা ডেভেলপারদের প্রত্যাশাকে ও ছাড়িয়ে যায় এবং খুব দ্রুতই স্পষ্ট হয়ে ওঠে যে ব্যবহারকারীরা পিএইচপিকে অনেক বড় বড় এন্টারপ্রাইজ লেভেল এপ্লিকেশনে ব্যবহার করতে চান যা শুরুর দিকে প্রত্যাশা করা হয়নি। দুজন কোর ডেভেলপার- জিভ সুরাস্কি এবং এন্ডি গাটম্যানস - নতুনভাবে পিএইচপি উন্নয়ন কাজ পরিচালনার সিদ্ধান্ত নেন, নতুন পিএইচপি পার্সার লেখা হয়, যা জেন্ড স্ক্রিপ্টিং ইঞ্জিন নামে অভিহিত করা হয়। এসব কাজের সম্মিলিত ফলাফল ২২মে, ২০০০ সালে পিএইচপি ৪ রিলিজে প্রতিফলিত হয়।

পিএইচপি ৪ রিলিজে এন্টারপ্রাইজ লেভেলে কাজ করার জন্য বেশ কিছু নতুন ফিচার যুক্ত করা হয় যেমন- অবজেক্ট ওরিয়েন্টেড সাপোর্ট, উন্নতমানের রিসোর্স হ্যান্ডলিং ক্ষমতা, নিজস্ব সেশন হ্যান্ডলিং সাপোর্ট, বিভিন্ন এনক্রিপশন সুবিধা সাপোর্ট, উইন্ডোজের জন্য COM/DCOM সাপোর্ট, নিজস্ব জাভা সাপোর্ট, পার্ল এর সাথে সাযুজ্যপূর্ন রেগুলার এক্সপ্রেশান লাইব্রেরী সাপোর্ট (PCRE) ইত্যাদি।

ইসরায়েল ভিত্তিক জেন্ড টেকনোলজি লিমিটেড জেন্ড ইঞ্জিন উন্নয়নের সাথে সাথে পিএইচ প্রোগ্রাম উন্নয়ন ও বিতরনের জন্য আরো কিছু টুলস বিতরন শুরু করে। এগুলির মধ্যে রয়েছে জেন্ড স্টুডিও, জেন্ড এনকোডার, জেন্ড অপটিমাইজার ইত্যাদি।

বর্তমানে পিএইচপি এর সর্বাধুনিক সংস্করন হচ্ছে ৫.০। এ ভার্সনে ও কতিপয় সুযোগ/সুবিধা যোগ করা হয়েছে যেমন- বিস্তৃত ও উন্নত অবজেক্ট ওরিয়েন্টেড সুবিধা, ট্রাই/ক্যাচ এক্সসেপশন হ্যান্ডলিং সুবিধা, উন্নতমানের স্ট্রিং হ্যান্ডলিং সুবিধা, উন্নতমানের এক্সএমএল(XML) ও ওয়েব সেবার সাপোর্ট ইত্যাদি। পিএইচপি বর্তমানে তাই এপাচির সবথেকে জনপ্রিয় মডিউলে পরিনত হয়েছে এবং এর ফিচারসমূহের উন্নতি ও লক্ষ্যনীয়।


পিএইচপি, মাইএসকিউএল এবং এপাচি ওয়েব সার্ভার ইনস্টল ও কনফিগার করা


এবার আসুন পিএইচপিতে কাজ করার জন্য আপনার কম্পিউটারকে কিভাবে উপযোগী করবেন তা দেখি। পিএইচপি একটি স্ক্রিপ্টিং ল্যাঙ্গুয়েজ তাই এতে কোন কম্পাইলারের প্রয়োজন নেই। উইন্ডোজে xampp বা xampplite এর মত কোন বান্ডেলড প্যাকেজ ডাউনলোড ও ইনস্টল করে নিন ওয়েব থেকে। এগুলিতে পিএইচপি, মাইএসকিউএল, এপাচি সমন্বিতভাবে দেয়া থাকে। আলাদাভাবে কোন কিছু ইনস্টলের দরকার হয় না। এগুলি ইনস্টলের পর চালু করুন এর ইনস্টলেশন ফোল্ডারে অবস্থিত xampp_start আইকনে ক্লিক করে। তারপর এপাচি এবং মাইএসকিউএল চালু করুন এর কন্ট্রোল প্যানেল থেকে।

লিনাক্সে ব্যাপারটি আরো সহজ। ডেবিয়ান জিএনইউ/লিনাক্স, উবুন্টু, লিনাক্স মিন্ট ইত্যাদি ডিস্ট্রিবিউশনগুলিতে মাত্র কয়েকটি কমান্ডের মাধ্যমে এপাচি, পিএইচপি, মাইএসকিউএল ইনস্টল করা যায়। এজন্য টার্মিনালে লগইন করুন রুট ইউজার হিসেবে তারপর কমান্ড দিনঃ

#aptitude install apache2

#aptitude install apache2-mpm-prefork

#aptitude install mysql-server5.0 mysql-client5.0 php5-mysql

#aptitude install phpmyadmin

মাইএসকিউএল এবং পিএইচপি মাই এডমিন ইনস্টল করে রাখা ভাল। ভবিষ্যতে কাজে লাগবে।

ইনস্টল শেষ হলে ফায়ারফক্স বা ব্রাউজার চালু করুন এবং এড্রেসবারে লিখুন

http://localhost

সঠিকভাবে ইনস্টল হলে সাকসেস মেসেজ প্রদর্শন করবে।

মাইএসকিউএলকে সঠিকভাবে কনফিগার করার জন্য php.ini ফাইলটি টেক্সট এডিটরে (যেমন ভিম/জি-এডিট) খুলুন এবং

;extension=php_msql.so

উপরের লাইনটি খুজে বের করে ; চিহ্নটি মুছে দিন।

মাইএসকিউএলে গ্রাফিক্যালি কাজ করার জন্য ব্রাউজারের এড্রেসবারে লিখুন

http://localhost/phpmyadmin

অন্যান্য ডিস্ট্রিবিউশনের জন্য ম্যানুয়াল দেখুন।

পিএইচপি কমান্ড প্র্যাকটিসের জন্য জিনি (geany) এডিটর ইনস্টল করে নিন লিনাক্স মেশিনে। পরবর্তীতে আরো উন্নত আইডিই যেমন নেটবিনস, কে-ডেভেলপ ইত্যাদি ব্যবহার করতে পারেন। তবে প্রথম প্রথম বেসিক টেক্সট এডিটর যেমন কেরাইট, জিএডিট, জিনি ইত্যাদি ব্যবহার করাই ভাল।

উইন্ডোজ টেক্সট প্যাড, নোট প্যাড ইত্যাদি এডিটর ব্যবহার করতে পারেন।

মেশিন কনফিগারের পর এবার আমরা পিএইচপি বেসিক শেখা শুরু করবো যেকোন প্রোগ্রামিং ল্যাংগুয়েজ শেখার মতই।

আজ এ পর্যন্তই। সবাই ভাল থাকুন। সুস্থ থাকুন।