পিএইচপি জানার জন্য আগে ইন্টারনেট , ওয়েব , সার্ভার , ক্লায়েন্ট এবং এইচটিএমএল সম্পর্কে জেনে নেই।
ইন্টারনেট হলো কম্পিউটারের সাথে কম্পিউটারের বিশাল কানেকশন বা নেটওয়ার্ক।নেটওয়ার্ক টি এমন ভাবে তৈরি যেন এতে সংযুক্ত প্রত্যেকটি কম্পিউটারের একটি নির্দিষ্ট এবং ইউনিক পরিচিতি থাকে এবং এই পরিচিতির মাধ্যমে যেন একটা কম্পিউটার সংযুক্ত আরেকটা কম্পিউটারের সাথে যোগাযোগ করতে পারে।এক নেটওয়ার্কের সাথে আরেক নেটওয়ার্ক মিলে এই নেটওয়ার্ক বাড়তে থাকে।এখন এটি সারা পৃথিবীজুড়ে বিস্তৃত । এর ফলে এই ইন্টারনেটে সংযুক্ত পৃথিবীর একপ্রান্তের একটা কম্পিউটার পৃথিবীর অপর প্রান্তের আরেকটা কম্পিউটারের সাথেও যোগাযোগ করতে পারে।
ওয়েব হলো ইন্টারনেট এর একটা প্রয়োগ বা ব্যবহার।ওয়েবের আবিষ্কার হয় এক অপারেটিং সিস্টেম থেকে আরেক অপারেটিং এ থাকা রিসার্চ পেপার বা ডকুমেন্ট পড়া যায়। ওয়েবে ইন্টারনেটে কানেক্টেড কোন কম্পিউটার একটা সার্ভার সফটওয়্যারের মাধ্যমে কিছু ফাইল বা ডকুমেন্টকে অন্যান্য কানেক্টেড কম্পিউটারের জন্য উন্মুক্ত করে দিতে পারে, যা ইন্টারনেট এ কানেক্টেড অন্য কোন কম্পিউটার ব্রাউজার সফটওয়্যারের মাধ্যমে ডাউনলোড করে দেখাতে পারে।এতে প্রথম কম্পিউটারকে সার্ভার বা হোস্ট আর দ্বিতীয় কম্পিউটারকে ক্লায়েন্ট বলা হয়। আর ওই ডকুমেন্ট গুলোকে ওয়েব ডকুমেন্ট বা ওয়েবপেজ বলা হয়।এই ডকুমেন্ট গুলো হল বিশেষ ধরনের ডকুমেন্ট, যাদেরকে html নামের একটা ল্যাংগুয়েজে লেখা হয়। এটা কোন প্রোগ্রামিং ল্যাংগুয়েজ নয়,মার্কয়াপ ল্যাংগুয়েজ।অর্থাৎ এই ল্যাংগুয়েজের মাধ্যমে কম্পিউটারকে এক্সিকিউশনের জন্য কোন ইন্সট্রাকশন দেয়া নয়,বরং কম্পিউটারের কোন সফটওয়্যারকে বিভিন্ন তথ্য মার্ক বা চিহ্নিত করে দেয়া যায়।যাতে ব্রাউজার বা এরকম সফটওয়্যার ঐ ডকুমেন্ট রিড করে ভিন্ন ভিন্ন অংশগুলোকে বুঝতে পারে। তো html হচ্ছে ব্রাউজারের বিভিন্ন অংশে বিভিন্ন লেখা,ছবি, তথ্য বা অন্যান্য ডকুমেন্ট দেখানোর জন্য তৈরি মার্কয়াপ ল্যাংগুয়েজ,যেটাতে বিভিন্ন অংশগুলোকে মার্কিং করা হয় বিভিন্ন ট্যাগ দিয়ে। এভাবে এইচটিএমএল দিয়ে তৈরি করা হয় তথ্য ,ছবি সম্বলিত ওয়েব ডকুমেন্ট,যে ডকুমেন্ট এক কম্পিউটার থেকে ইন্টারনেটে কানেক্টেড যেকোন কম্পিউটার দেখতে বা পড়তে পারে।
শুধু এইচটিএমএল এ লেখার সমস্যা হল ওয়েবপেজগুলো স্ট্যাটিক থাকে।মানে এইচটিএমএলকে চেঞ্জ করা ছাড়া ডকুমেন্ট বা তথ্যগুলো অপরিবর্তিত থাকে।কিন্তু সময়ের সাথে সাথে প্রয়োজন হল এই ওয়েবপেজগুলো যেন বিভিন্ন অবস্থা অনুসারে পরিবর্তন করা যায় অর্থাৎ ডায়নামিক করা যায়। এজন্য ওয়েবপেজগুলোতে প্রোগ্রাম করার প্রয়োজনীয়তা দেখা দিল। কিন্তু সার্ভারে তো সি বা সি++ দিয়ে প্রোগ্রাম করা সম্ভব নয়। কারন সি বা সি++ যেহেতু হার্ডওয়্যার,মেমরি পর্যন্ত এ্যাক্সেস দিয়ে,তাই তা সার্ভারের সিকিউরিটির চিন্তার কারন হতে পারে। এরজন্যই জন্ম হয় পিএইচপি ল্যাংগুয়েজ এর , যা ওয়েব সার্ভারের জন্য বিশেষভাবে তৈরি। পিএইচপি সার্ভারে রান করে স্ট্যাটিক ওয়েব ওয়েবপেজগুলোকে প্রোগ্রাম অনুসারে চেঞ্জ করতে মানে ডায়নামিক করতে পারে।
এজন্য PHP কে সার্ভার সাইড টেকনলজি বা সার্ভার সাইড স্ক্রিপ্টিং ল্যাংগুয়েজ বলা হয়।আরো অনেক সার্ভার সাইড টেকনলজি থাকলেও পিএইচপি এদের মধ্যে সবচেয়ে বেশি ব্যবহৃত।
এখন আসি পিএইচপি কিভাবে ডায়নামিক ওয়েবপেজ জেনারেট করে সে ব্যাপারে। পিএইচপি রান করার জন্য দরকার পড়ে পিএইচপি ইনস্টল করা ওয়েব সার্ভার সফটওয়্যার। এ্যাপাচি , জিনেক্স, লাইট এইচটিটিপিডি হল এরকম কিছু ওয়েব সার্ভার, এদের মধ্যে এ্যাপাচি সবথেকে বেশি জনপ্রিয়। কোন ওয়েবপেজে php আছে,তা সার্ভারকে বুঝানোর জন্য ওয়েবপেজের এক্সটেনশন .html থেকে চেঞ্জ করে .php করতে হয়। এবার এই ওয়েবপেজের রিকুয়েস্ট আসলে ওয়েব সার্ভার সেই ওয়েবপেজ ওপেন করে <?php ?> এই ট্যাগ খুজে দেখে। এই ট্যাগ পেলে তার ভিতরে থাকা কোড এক্সিকিউট করে এবং সে জায়গায় ট্যাগের বদলে ঐ কোড বা প্রোগ্রামের আউটপুট বসায়। এভাবে পুরো পেজ পড়া হয়ে গেলে সেটা একটা স্ট্যাটিক এইচটিএমএল এ পরিনত হয়। এবার সেই ডকুমেন্টকে ওয়েব সার্ভার রিকুয়েস্ট পাঠানো কম্পিউটার এ পাঠায় দেয়। অর্থাৎ পিএইচপি দিয়ে ওয়েবপেজ করা হলেও ক্লায়েন্ট ব্রাউজার কিন্তু শুধু এইচটিএমএল ওয়েবপেজ ই পেয়ে থাকে,পিএইচপি সোর্স কখনো পায় না।
এবার আসি পিএইচপি কোড বা প্রোগ্রাম কি কি কাজ করতে পারে বা কি ধরনের ইন্সট্রাকশন এক্সিকিউট করতে পারে। প্রথমত সি এর মতই এটি ভ্যারিয়েবল এর মাধ্যমে কোন কিছু মেমরিতে ধরে রাখতে পারে,এদের উপর বিভিন্ন এ্যারিথমেটিক, লজিক্যাল ,কন্ডিশনার অপারেশন করতে পারে,লুপ চালাতে পারে। এরপর সেগুলোকে এইচটিএমএল আকারে আউটপুট দিতে পারে। পিএইচপি কিছু গ্লোবাল ভেরিয়েবল পেয়ে থাকে,যেমন ফর্ম দিয়ে সাবমিট করা বিভিন্ন ডাটা; কুকি , সেসন ইত্যাদি।সেসন, কুকি ইন্টারেস্টিং -কারন এদের মাধ্যমে পিএইচপি এইচটিএমএল এর পাশাপাশি ব্রাউজারকে ছোট ছোট কিছু ডাটা সংরক্ষন করতে পাঠাতে পারে। পরবর্তি সময়ে ব্রাউজার যখন উক্ত সার্ভারে রিকুয়েস্ট করে তখন সেই ডাটা সহ রিকুয়েস্ট পাঠায়,যা পিএইচপি কুকি বা সেসন ভেরিয়েবল এর মাধ্যমে রিড করতে পারে। এখন আমরা যদি ওয়েব ব্রাউজারকে ইউনিক কিছু কুকি বা সেসন পাঠাই তাহলে,পরবর্তি সময়ে তারা যখন রিকুয়েস্ট করবে তখন তাদেরকে চিনতে পারব। এভাবে সার্ভারে রিকুয়েস্ট করা হাজার হাজার ক্লায়েন্ট কম্পিউটারকেও আলাদাভাবে আইডেনটিফাই করতে পারি। এছাড়াও পিএইচপি ফাইল হ্যান্ডেল করতে পারে। তবে পিএইচপি মূলত ব্যবহৃত হয় ডাটাবেজের সাথে কমিউনিকেশনের জন্য। পিএইচপি মাইএসকিউএল বা মাইসিকুয়েল বা পোস্টগ্রে সার্ভারের সাথে কানেক্ট হয়ে বিভিন্ন এস্কিউএল কুয়েরি এ্যাপ্লাই করে ডাটা আদান প্রদান করতে পারে। এসব ডাটা ব্যবহার করে পিএইচপি ডায়নামিক ওয়েবপেজ এ ডায়নামিক কনটেন্ট জেনারেট করে।