বাংলায় পিএইচপি নিয়ে কিছুমিছু
পিএইচপি
পিএইচপির ম্যাথমেটিক্যাল ফাংশন্স, পর্ব – ২ : সাধারণ ত্রিকোণমিতিক সমস্যার সমাধান
Dec 7th
এসএসসি তে ত্রিকোণমিতির বেসিকস বুঝতে বুঝতেই কখন যেন সময় গড়িয়ে গেল।এইচএসসি তে এসে বুঝলাম ত্রিকোণমিতির ঝাল কেমন। সাইন, কোসাইন আর ট্যাঞ্জেন্টের ধারণা মনে রাখাটাই বড় ধরনের কৃতীত্ব মনে হত তখন। কোনটা লম্ব ভাগ অতিভুজ আর কোনটা অতিভুজ ভাগ ভূমি – এই সংজ্ঞাগুলো মনে রাখতে আয়ত্বও করেছিলাম বেশকিছু ছন্দ
sin30, cos90 ইত্যাদির মানতো কখনই মনে রাখতে পারতাম না। ভাগ্যিস হাতের কাছে ক্যালকুলেটর নামক যন্ত্রখানি সর্বদাই রাখা পড়ত
পিএইচপির ম্যাথ ফাংশন্স সিরিজের দ্বিতীয় পর্বে তাই আমরা ত্রিকোণমিতি সম্পর্কিত ফাংশন্সগুলোর দিকে নজর দিতে চাই । পিএইচপির অতি প্রচলিত ৪৮টি ম্যাথ ফাংশনের মধ্যে ১৫টিই ত্রিকোণমিতি সম্পর্কিত । এগুলো হল – acos(), acosh(), asin(), asinh(), atan2(), atan(), atanh(), cos(), cosh(), hypot(), sin(), sinh(), tan(), rad2deg(), tanh()
এই পর্বটিতে আমরা সাধারণ ত্রিকোণমিতিক ফাংশনগুলোর ব্যবহারিক প্রয়োগ দেখব। অর্থাৎ sin(), cos(), tan() এবং hypot()
hypot():
চমৎকার এই ফাংশনটির কথা অনেকেরই অজানা। এটির কাজ সমকোনী ত্রিভূজের অতিভুজ পরিমাপ করা। কিভাবে? নিজেই ব্যবহার করে দেখে নিন:
<?php // filename: /home/masnun/phpbook/math-2/hypot.php var_dump( hypot(3,4) ); // Outputs: float(5) ?> <?php var_dump( hypot(12,5) ); // Outputs: float(13) ?>
আমরা সমকোনী ত্রিভূজের দুই বাহুর পরিমাপ প্যরামিটার হিসেবে দিলেই এই ফাংশনটি জানিয়ে দেবে অতিভুজের হিসাব। আজ যদি পীথাগোরাস বেচে থাকতেন তবে তিনিও নির্ঘাত পিএইচপি শিখতে চাইতেন অতিভুজ সংক্রান্ত সমস্যাগুলো দ্রুত সমাধান করতে
কি, একটু বেশিই বলে ফেললাম নাকি ?
sin():
নাম থেকেই যে ফাংশনের কাজ সম্পর্কে ধারণা করে ফেলেছেন তাতো বুঝতেই পারছি। হ্যা, প্রদত্ত কোণের সাইন অনুপাত নির্ণয় করাই এই ফাংশনের একমাত্র কাজ
<?php // filename: /home/masnun/phpbook/math-2/sin.php var_dump( sin(90) ); // Outputs: float(0.893996663601) ?> <?php var_dump( sin(0) ); // Outputs: float(0) ?>
জ্বি, sin90 এর মান পুরোপুরি ১ নয়
cos():
সাইনের পরেই আমরা চলে এলাম কোসাইনের জগতে। কোন কোণের পরিমাপ থেকে তার কোসাইন অনুপাত করতে আমাদের এই ফাংশনটির শরণাপন্ন হতে হয়।
<?php // filename: /home/masnun/phpbook/math-2/cos.php var_dump( cos(90) ); // Outputs: float(-0.448073616129) ?> <?php var_dump( cos(0) ); // Outputs: float(1) ?>
tan():
সাইন অনুপাতকে কোসাইনের অনুপাত দিয়ে ভাগ করলেই যে ট্যাঞ্জেন্ট অনুপাত পাওয়া যাবে তা আমরা কম বেশি সবাই জানি। কিন্তু, কি দরকার অযথা সময় নষ্ট করার? এই ফাংশনটি থেকে আমরা একবারেই পেয়ে যাব কাংখিত ফলাফল ।
<?php // filename: /home/masnun/phpbook/math-2/tan.php var_dump( tan(45) ); // Outputs: float(1.61977519054) ?> <?php var_dump( tan(0) ); // Outputs: float(0) ?>
এই লেখাটিতে ব্যবহৃত উদাহরন সমূহ ডাউনলোড করে নিন এখান থেকে — http://bangla-phpbook.googlecode.com/files/math-2.zip
পিএইচপির ম্যাথেমেটিকাল ফাংশন্স : পর্ব – ১
Dec 6th
ম্যাথ বা গনিতের কথা ভাবলেই আমার মনে পড়ে যায় রাশভারী চেহারার কোন পন্ডিতের কথা। মাঝে মাঝে ভাবতাম যে লোকটা গনিতের সূত্রপাত করেছেন তাকে যদি একবার আমার সামনে পেতাম তাহলে তাকে হাতে কলমে বুঝিয়ে দিতাম গনিত কষার কত মজা
কিন্তু পিএইচপি শেখার পর থেকে মনে হয় ম্যাথ বোধহ্য় অতটা খারাপ কিছু না
পিএইচপি তে আমি পেয়েছি অসাধারন কিছু ম্যাথমেটিকাল ফাংশন্স যেগুলো দিয়ে প্রায় সব ধরনের ম্যাথমেটিকাল প্রবলেম এর সমাধান করা সম্ভব খুব সহজেই
আসুন তবে দেখা যাক পিএইচপির গনিতের দৌড় কতদূর
পিএইচপিতে প্রায় ৫০ টি ম্যাথ ফাংশন্স আছে যেগুলো আমরা কয়েক পর্বে দেখব । প্রথম পর্বে আমরা দেখব abs(), ceil(), floor(), is_finite() এবং is_infinite() – এই ৫ টি ফাংশন্স । তাহলে চলুন শুরু করা যাক।
abs():
যে কোন সংখ্যার ধনাত্নক মান নির্নয় করতে আমরা এই ফাংশনটি ব্যবহার করব। যেমনঃ
<?php //filename: /home/masnun/phpbook/math-1-abs.php $number1 = 11; echo abs($number1); // outputs: 11 ?> <?php $number2 = -11; echo abs($number2); // outputs: 11 ?>
ceil():
ভগ্নাংশের মান বৃদ্ধি করে পরবর্তী পূর্ন সংখ্যায় পরিণত করে । যেমনঃ
<?php //filename: /home/masnun/phpbook/math-1-ceil.php $number1 = 3.4; echo ceil($number1); // Outputs: 4 ?> <?php $number2 = -3.4; echo ceil($number2); // Outputs: -3 ?>
লক্ষ্য করুন, ঋনাত্নক সংখ্যার ক্ষেত্রে -৩, -৩.৪ অপেক্ষা বৃহত্তর
floor():
এটি ঠিক ceil() এর উল্টোটা করে। অর্থাৎ ভগ্নাংশের মান হ্রাস করে পূর্ববর্তী পূর্ন সংখ্যায় পরিণত করে । যেমনঃ
<?php //filename: /home/masnun/phpbook/math-1-floor.php $number1 = 3.4; echo floor($number1); // Outputs: 3 ?> <?php $number2 = -3.4; echo floor($number2); // Outputs: -4 ?>
is_finite():
এই ফাংশনটির রিটার্ন ভ্যালু একটি Boolean value । অর্থাৎ যদি প্রদত্ত সংখ্যাটি সসীম হয় তবে এটি True নচেৎ False রিটার্ন করে । সহজভাবে ব্যখ্যা করার জন্য এখানে আমি “সসীম” শব্দটি ব্যবহার করলাম। মূলত, সংখ্যাটি “float” ডাটা টাইপের সীমার ভেতরে আছে কিনা সেটা যাচাই করাই এই ফাংশনটির কাজ । যেমনঃ
<?php //filename: /home/masnun/phpbook/math-1-is_finite.php $number1 = 30003; var_dump( is_finite($number1) ); // Outputs: bool(true) ?> <?php $number2 = log(0); var_dump( is_finite($number2) ); // Outputs: bool(false) ?>
is_infinite():
আগের ফাংশনটির ঠিক বিপরীত এই ফাংশনটি। এটি নির্দেশ করে প্রদত্ত সংখ্যাটি অসীম কিনা । যেমনঃ
<?php //filename: /home/masnun/phpbook/math-1-is_infinite.php $number1 = 30003; var_dump( is_infinite($number1) ); // Outputs: bool(false) ?> <?php $number2 = log(0); var_dump( is_infinite($number2) ); // Outputs: bool(true) ?>
বিদ্রঃ উপরের দুটি ফাংশনের ব্যবহার দেখাতে গিয়ে আমি log(0) ব্যবহার করেছি । log(0) এর মান অসীম বলে বিবেচিত হ্য় । এটিও পিএইচপির ম্যাথ ফাংশনগুলির মধ্যে গুরুত্বপূর্ন একটি । আমরা পরবর্তী কোন পর্বে এটির ব্যবহার দেখে নিব ।
এই লেখাটিতে ব্যবহৃত পিএইচপি ফাইলগুলো ডাউনলোড করে নিনঃ http://bangla-phpbook.googlecode.com/files/phpbook-math-1.zip
বর্ণগুচ্ছের(String) সহজ পাঠ- শুরু থেকে শুরু
Dec 4th
ওয়েবে এখন অনেক উপাদান যেমন ভিডিও , এনিমেশন, সাউন্ড, ছবি অনেক কিছুই পাওয়া যাচ্ছে, তারপরও ওয়েবের অনেকাংশ জুড়ে আছে টেক্সট-মানে অক্ষরের পর অক্ষর!
এই টেক্সট-কে ওয়েবে প্রকাশ করার জন্য পিএইচপি-তে যে ডাটাটাইপ ব্যাবহার করা হয় সেটি হলো স্ট্রিং।
এই স্ট্রিং হ্যান্ডলিং আজকের অনলাইন সফটওয়ার ডেভেলপমেন্টে অনেক গূরুত্বপূর্ন ভূমিকা রাখে , ডাটা ভ্যালিডেশন থেকে শুরু করে অনেক সিকিউরিটি ইস্যুতে স্ট্রিং হ্যান্ডলিং জরুরী, কোন ডাটা আমার স্টোরেজে জমা হচ্ছে , কোন ডাটা আমি user-কে দেখাবো এইসব ব্যাপার control করতে চাইলে স্ট্রিং হ্যান্ডলিং সম্পর্কে জানতে হবে, সুতরাং ভালো ডেভেলপার হতে হলে পিএইচপিতে স্ট্রিং ও এর ফাংশন সমূহের ব্যাবহার ভালোভাবে জানাটা জরূরী ।
স্ট্রিং কি?
প্রথমে জেনে নেই স্ট্রিং কি জিনিস, খায় না মাথায় দেয়
।
স্ট্রিং আসলে কতগুলো অক্ষরের সমাহার, অনেকগুলো বর্ণের সমষ্টি, সেজন্যই বলছি বর্ণগুচ্ছ
।
এই স্ট্রিং হতে পারে একটি বাক্য, নাম্বার , অথবা একটি শব্দ অথবা একটি মাত্র অক্ষর, একটিমাত্র নাম্বার, অথবা কোন ডেটও হতে পারে।
স্ট্রিং এর মধ্যে অক্ষর, নাম্বার, স্পেস, পাঙ্কচুয়েশন যে কোন কিছুই থাকতে পারে।
যেমন নিচের সবগুলোই স্ট্রিং -
- ‘phpbook’
- ‘December 4, 2009’
- “I”
- “5”
- “Hi!”
পিএইচপি ডাটা টাইপ
Dec 4th
ডাটা টাইপ সম্পর্কে বলতে গেলে আগে ভেরিয়েবল নিয়ে বলতে হয়। হাসিন ভাই ভেরিয়েবল নিয়ে বলেছেন। এখানে ডাটা টাইপ নিয়ে সংক্ষেপে কিছু আলোচনা করা যাক।
ভেরিয়েবল আসলে কিছু তথ্য রাখার জন্য পাত্র সরূপ। দৈনন্দিন জীবনে আমরা বিভিন্ন জিনিস রাখার জন্য যেমন বিভিন্ন ধরনের পাত্র ব্যবহার করি। ভেরিয়েবল আসলে সেরকম পাত্রের মতই। বিভিন্ন জিনিস রাখার জন্য পাত্রগুলো বিভিন্ন রকম হয়। যেমন, তরল পদার্থ রাখার জন্য এক ধরনের পাত্র, কঠিন পদার্থ রাখার জন্য এক ধরনের পাত্র, বায়বীয় পদার্থ রাখার জন্য আরেক ধরনের পাত্র। বস্তুর ধরন অনুযায়ী পাত্রের ধরন নির্বাচন করতে হয়।
প্রোগ্রামিংএর ক্ষেত্রে তথ্যের ধরনের উপর ভিত্তি করে ভেরিয়েবল ভিন্ন হয়। PHP একটি শিথিল ধরনের প্রোগ্রামিং ল্যাংগুয়েজ। ভেরিয়েবল বিভিন্ন রকম হলেও ভেরিয়েবল ঘোষণা (declare) করার সময় বলে দিতে হয় না এটা কোন ধরনের পাত্র হবে, মানে কোন ধরনের ডাটা টাইপ হবে। পাঠক, এতক্ষণের আলোচনায় ডাটা টাইপ (data type) সম্পর্কে কিছু ধারণা পেয়েছেন আশা করি।
এবার দেখা যাক কত ধরনের ডাটা টাইপ আছে।
PHP তে আট ধরনের ডাটা টাইপ আছে। সেগুলো হচ্ছে-
- integer ইন্টিজার বা পূর্ণ সংখ্যা, যেমন- 10, 5, 6
- float ফ্লটিং পয়েন্ট বা দশমিক সংখ্যা, যেমন- 5.25, 3.0
- string স্ট্রিং বা বর্ণগুচ্ছ, যেমন- “This is a string.”
- boolean বুলিয়ান বা সত্য মিথ্যা, TRUE এবং FALSE
- array এ্যারে
- object অবজেক্ট
- resource রিসোর্স
- NULL নাল
PHP 6 এ Unicode এবং Binary নামে আরো দুই ধরনের ডাটা টাইপ সংযুক্ত করা হয়েছে। (চলবে….)
পিএইচপি বেসিকস ১ – ভ্যারিয়েবল
Dec 1st
অনেকের মনেই প্রথমে ভয় ঢুকিয়ে দেয়া হয় প্রোগ্রামিং ল্যাংগুয়েজের সহজ টার্ম গুলোর বিদঘুটে মার্কা বাংলা নাম বলে। যেমন ভ্যারিয়েবলের বাংলা অর্থ চলক হলেও আমরা কয়জন চেয়ারকে কেদারা বলে থাকি? আমরা মোমেন্ট কে মোমেন্ট ই বলি, ভ্রামক বলি না। আমরা এই ব্লগেও কমন টার্মস গুলো যেভাবে কথ্য ভাষায় ব্যবহৃত হয় সেভাবেই উল্লেখ করব।
ভ্যারিয়েবলের সবচেয়ে সহজ সংজ্ঞা বলা যায় এটা হল একটা পাত্র (Container) যাতে আমরা বিভিন্ন ধরনের ডেটা রাখতে পারি। পিএইচপি একটি লুজলি টাইপড (Loosely Typed) ল্যাংগুয়েজ আর তাই এখানে আলাদা ভাবে উল্লেখ করে দেয়া লাগে না যে এটা কি ধরনের ভারিয়েবল হবে। সংরক্ষিত ডেটা দেখে পিএইচপি নিজেই বুঝে নেয় যে ভ্যারিয়েবল টি কি টাইপের। এই প্রসঙ্গে আরেকটি টার্মস চলে আসে আর তা হল অ্যারে। অ্যারে নিয়ে পরবর্তীতে আমরা বিস্তারিত দেখব, এখানে শুধু এটুকু জেনে রাখি যে সহজ কথায় অ্যারে হল অনেকগুলো ভ্যারিয়বলের একটা কনটেইনার
– একটা অ্যারের মাঝে অনেক ভ্যারিয়েবল রাখা যায়। যাকগে, সে পরের কাহিনী।
পিএইচপিতে ভ্যারিয়েবল এর নামের আগে $ সাইন লাগাতে হয়, তখন পিএইচপি বুঝতে পারে যে এটা হল একটা ভ্যারিয়েবল। একটি ভ্যারিয়েবলে আমরা যদি সংখ্যা স্টোর করি তাহলে সেটা হবে ইন্টিজার ভ্যারিয়েবল (দশমিক এর পরে কিছু না থাকলে) অথবা ডেসিমাল ভ্যারিয়েবল (দশমিক সহ), আর প্রিন্ট করার মত যেকোন কিছু স্টোর করলে তা হল স্ট্রিং। কিন্তু মজার ব্যপার হল যে এর জন্য আলাদা ভাবে কোন ইনস্ট্রাকশন দেয়ার প্রয়োজন নেই
খবরাখবর: নভেম্বর ৩০
Nov 30th
আমাদের এই ব্লগে আমরা পিএইচপি দুনিয়ার বিভিন্ন খবর সম্বন্ধে আপনাদের নিয়মিত অবহিত করব। তারই শুরু হিসবে আজকে জেনে নিন গত সপ্তাহ, এই সপ্তাহ এবং এই মাসের কিছু ইন্টারেস্টিং খবর
* জেন্ড ফ্রেমওয়ার্ক ১.৯.৬ রিলিজ হয়েছে
* উইন্ডোজে পিএইচপি এবং ক্যাশ নিয়ে ক্যাল ইভান্সের আর্টিকেল
* পিএইচপির কার্ল লাইব্রেরী দিয়ে করা চমৎকার ১০টি কোড স্নিপেট – ক্যাটসহুকোড থেকে পাওয়া
* পিএইচপি এক্সপ্লয়টেশন নিয়ে মারাত্মক খবর
* ভ্যানিলা – একটি চমৎকার ওপেন সোর্স পিএইচপি ফোরাম
ডেবিয়ান এবং উবুন্তুতে পিএইচপি ইনস্টল করা
Nov 30th
ডেবিয়ান এবং উবুন্তুতে পিএইচপি ইনস্টল করাও একদম সহজ। আপনার টার্মিনালে নিচের মত করে কমান্ড দিন
sudo apt-get install php5
পিএইচপির কমান্ড লাইন ইন্টারফেস ইনস্টল করার জন্য
sudo apt-get install php5-cli
পিএইচপির সাথে সাহায্যকারী লাইব্রেরী হিসেবে পিয়ার এবং পিইসিএল ইনস্টল করার জন্য নিচের কমান্ড দিন। পিয়ার এবং পিইসিএল নিয়ে আমরা পরে বিস্তারিত আলোচনা করব।
sudo apt-get install php-pear
এবং পিএইচপির কিছু এক্সটার্নাল লাইব্রেরী কম্পাইল করার জন্য পিএইচপি-ডেভেলপার ইনস্টল করতে হলে তা করতে পারেন নিচের মত করে
sudo apt-get install php5-dev
ইনস্টল করা হয়ে গেলে অ্যাপাচি রিস্টার্ট দিন। মনে আছে কিভাবে রিস্টার্ট দিতে হয়? না মনে থাকলে এখান থেকে দেখে নিন
sudo /etc/init.d/apache2 restart
সাম্প্রতিক মন্তব্যসমূহ