এই অধ্যায়ে আপনারা শিখবেন কিভাবে সার্ভারে ফাইল ওপেন, রিড এবং ক্লোজ করতে হয় ( ফাইল খোলা, পড়া এবং বন্ধ করা)।
পিএইচপি ওপেন ফাইল - fopen()
ফাইল ওপেন করার একটি অপেক্ষাকৃত ভালো উপায় হলো fopen() ফাংশন দিয়ে ওপেন করা। এই ফাংশনটি readfile() ফাংশনের থেকে আরও বেশি অপশন ব্যবহারের সুযোগ করে দেয়। এই টিউটোরিয়ালে আমরা টেক্সট ফাইল "webdictionary.txt" কে ব্যবহার করবোঃ
AJAX = Asynchronous JavaScript and XML CSS = Cascading Style Sheets HTML = Hyper Text Markup Language PHP = PHP Hypertext Preprocessor SQL = Structured Query Language SVG = Scalable Vector Graphics XML = EXtensible Markup Language
fopen() এর প্রথম প্যারামিটারটি যে ফাইলটি ওপেন করা হবে তার নাম ধারণ করে এবং দ্বিতীয় প্যারামিটারটি কোন মোডে ফাইলটি ওপেন করা হবে তা নির্দিষ্ট করে। নিচের উদাহরণটি একটি মেসেজও তৈরি করে যদি fopen() ফাংশন নির্দিষ্ট ফাইলটি ওপেন করতে না পারেঃ
< ?php $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!"); echo fread($myfile,filesize("webdictionary.txt")); fclose($myfile); ?>
টিপসঃ fread() এবং fread() ফাংশনগুলো নিচে ব্যাখ্যা করা হবে।
ফাইলটি নিচের যেকোন একটি মোডে ওপেন হতে পারে
মোড | ব্যাখ্যা |
r | রিড ওনলি (read only) ফাইল খোলে। ফাইল পয়েন্টার ফাইলের প্রথমদিকে চালু হয়। |
w | রাইট ওনলি (write only ) ফাইল খোলে। ফাইলের কন্টেন্ট মুঁছে দেয় অথবা সেটি না থাকলে একটি নতুন ফাইল তৈরি করে। ফাইল পয়েন্টার ফাইলের প্রথমদিকে চালু হয়। |
a | রাইট ওনলি ফাইল খোলে। ফাইলের পূর্বের ডাটা সংরক্ষণ করে। ফাইল পয়েন্টার ফাইলের শেষের দিকে চালু হয়। যদি ফাইলটি না থাকে তাহলে একটি নতুন ফাইল ওপেন করে। |
x | নতুন রাইট ওনলি ফাইল তৈরি করে। যদি ফাইলটি আগেই থেকে থাকে তাহলে FALSE এবং একটি এরর ফিরিয়ে দেয়। |
r | রিড/রাইট এর জন্য একটি ফাইল ওপেন করে। ফাইল পয়েন্টার ফাইলের প্রথমদিকে চালু হয়। |
w+ | রিড/রাইট এর জন্য একটি ফাইল ওপেন করে। ফাইলের সব কন্টেন্ট মুঁছে দেয় অথবা ফাইলটি না থাকলে নতুন ফাইল তৈরি করে। ফাইল পয়েন্টার ফাইলের প্রথমদিকে চালু হয়। |
a+ | রিড/রাইট এর জন্য একটি ফাইল ওপেন করে। ফাইলের বিদ্যমান ডাটা রেখে দেয়া হয়। ফাইল পয়েন্টার ফাইলের শেষের দিকে চালু হয়। যদি ফাইলটি না থাকে তাহলে একটি নতুন ফাইল তৈরি করে। |
x+ | রিড/রাইট এর জন্য একটি নতুন তৈরি করে। যদি ফাইলটি আগেই থেকে থাকে তাহলে FALSE এবং একটি এরর ফিরিয়ে দেয়। |
পিএইচপি রিড ফাইল - fread()
fread() ফাংশনটি একটি খোলা বা ওপেন ফাইলকে রিড বা পাঠ করে। fread() এর প্রথম প্যারামিটারটি পড়ার জন্য ফাইলের নামটি ধারণ করে এবং দ্বিতীয় প্যারামিটারটি পড়ার জন্য সর্বোচ্চ সংখ্যক বাইটকে নির্দিষ্ট করে দেয়। নিচের পিএইচপি কোডটি "webdictionary.txt" ফাইলকে শেষ পর্যন্ত পড়েঃ
fread($myfile,filesize("webdictionary.txt"));
পিএইচপি ক্লোজ ফাইল - fclose()
একটি খোলা ফাইলকে বন্ধ করতে fclose() ফাংশনটি ব্যবহৃত হয়।
টিপসঃ কাজ শেষে খোলা ফাইলকে নিয়মিত বন্ধ করার অভ্যাসটি একজন ভালো প্রোগ্রামারের বৈশিষ্ট্য। আপনি নিশ্চয়ই চাইবেন না যে একটি ওপেন ফাইল আপনাদের সার্ভারে রান করে এর রিসোর্স দখল করে রাখুক!
fclose() ফাংশনটির আমরা যে ফাইলটি বন্ধ করতে চাই সেই ফাইলের নামের দরকার পড়ে অথবা একটি ভ্যারিয়েবলের প্রয়োজন হয় যা ফাইলনেম ধারণ করেঃ
< ?php $myfile = fopen("webdictionary.txt", "r"); // some code to be executed.... fclose($myfile); ?>
পিএইচপি রিড সিঙ্গেল লাইন - fgets()
fgets() ফাংশনটি কোন ফাইল থেকে একটি মাত্র লাইন পড়তে ব্যবহৃত হয়। নিচের উদাহরণটি "webdictionary.txt" ফাইলের প্রথম লাইনকে আউটপুট হিসেবে প্রকাশ করেঃ
< ?php $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!"); echo fgets($myfile); fclose($myfile); ?>
লক্ষ্যণীয়ঃ fgets() ফাংশনটিকে কল করার পর, ফাইল পয়েন্টারটি পরের লাইনে চলে গেছে।
পিএইচপি চেক এন্ড-অফ-ফাইল - feof()
feof() ফাংশনটি ফাইলের শেষ দিকে ("end-of-file" (EOF)) পৌছেছে কিনা তা পরীক্ষা করে। অনির্দিষ্ট দৈর্ঘ্যের ডাটার মধ্যে লুপিং করতে feof() ফাংশনটি কার্যকর ভূমিকা রাখে। নিচের উদাহরণটি "webdictionary.txt" ফাইলের প্রতিটি লাইন পড়ে যতক্ষণ না ফাইলের শেষ পর্যন্ত (end-of-file) পৌছানো যায়ঃ
< ?php $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!"); // Output one line until end-of-file while(!feof($myfile)) { echo fgets($myfile) . "br"; } fclose($myfile); ?>
পিএইচপি রিড সিঙ্গেল ক্যারেক্টার - fgetc()
fgetc() ফাংশনটি একটি ফাইল থেকে একটি মাত্র ক্যারেক্টার বা অক্ষর পড়তে ব্যবহৃত হয়। নিচের উদাহরণটি "webdictionary.txt" ফাইলকে অক্ষরে অক্ষরে পড়ে যতক্ষণ যতক্ষণ না ফাইলের শেষ পর্যন্ত (end-of-file) পৌছানো যায়ঃ
< ?php $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!"); // Output one character until end-of-file while(!feof($myfile)) { echo fgetc($myfile); } fclose($myfile); ?>
লক্ষ্যণীয়ঃ ফাংশনকে কল করার পর পয়েন্টারটি পরবর্তী অক্ষরে চলে গেছে।
পিএইচপি'র সম্পূর্ণ রেফারেন্সের জন্য আমাদের পিএইচপি রেফারেন্সে পড়ে দেখুন।