ফাইলসিস্টেম

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

ডিরেক্টরী তৈরি করা

আমরা নতুন একটি ডিরেক্টরী বা ফোল্ডার তৈরি করতে পারি mkdir ফাংশনটি ব্যবহার করে ।

<?php
$success = mkdir("test_dir", 0755);
var_dump($success);

এখানে আমরা আমাদের কারেন্ট লোকেশনে test_dir নামে একটি ডিরেক্টরী তৈরি করেছি যেটার পার্মিশন লেভেল - 0755 । পার্মিশন সম্পর্কে আরো বিস্তারিত জানতে লিনাক্স ফাইল পার্মিশন এর উপর গুগলে সার্চ করতে পারেন ।

এই ফাংশনটি ৩য় আরেকটি বুলিয়ান আর্গুমেন্ট নেয় - যদি আমরা চাই নেস্টেড ডিরেক্টরী তৈরি করতে (যেমন: "my_dir/sub_dir/another_dir") তাহলে এই প্যারামিটার এর জন্য আমরা true পাস করবো । অন্যথায় পিএইচপি এরর থ্রো করবে ।

<?php
$success = mkdir("my_dir/sub_dir/another_dir", 0755, true);
var_dump($success);

ডিরেক্টরী ব্রাউজ করা

আমরা কোন ডিরেক্টরী এর কন্টেন্ট ব্রাউজ করার জন্য scandir ফাংশনটি ব্যবহার করতে পারি ।

<?php
$dir    = '/tmp';
$files1 = scandir($dir);
$files2 = scandir($dir, SCANDIR_SORT_NONE);

print_r($files1);
print_r($files2);

এই ফাংশনটির প্রথম প্যারামিটার ফাইল পাথ এ্যাক্সেপ্ট করে । যেই ডিরেক্টরীর কন্টেন্ট আমরা ব্রাউজ করতে চাই সেটির পাথ আমরা এই আর্গুমেন্ট হিসেবে পাস করবো । ২য় প্যারামিটারটি আমরা সর্টিং এর জন্য ব্যবহার করি । এটির ভ্যালু হিসেবে আমরা এই ৩টি কন্সট্যান্ট এর যে কোনটি পাস করতে পারি:

  • SCANDIR_SORT_ASCENDING
  • SCANDIR_SORT_DESCENDING
  • SCANDIR_SORT_NONE

এই প্যারামিটারটির জন্য ডিফল্ট ভ্যালু হিসেবে SCANDIR_SORT_ASCENDING থাকে ।

ডিরেক্টরী ডিলিট করা

rmdir ফাংশনটি ব্যবহার করে আমরা কোন ডিরেক্টরী ডিলিট করতে পারি:

<?php
rmdir('examples');

তবে ডিরেক্টরী ডিলিট করার আগে নিশ্চিত হতে হবে যে এই ডিরেক্টরীটি ফাকা আছে কিনা । যদি এটির মধ্যে অন্য কোন ফাইল বা সাব ডিরেক্টরী থাকে তবে আগে সেগুলো ডিলিট করে নিতে হবে ।

ফাইল তৈরি করা / ফাইলে কন্টেন্ট যোগ করা

file_put_contents ফাংশনটি ব্যবহার করে আমরা একটি ফাইলের কন্টেন্ট ওভাররাইট করতে পারি । যদি ঐ ফাইলটি আগে থেকে তৈরি করা না থাকে তাহলে ফাংশনটি ফাইলটি তৈরি করে নেয় ।

<?php
$file = 'people.txt';
$text = "Abu Ashraf Masnun\n";
file_put_contents($file, $text);

ডিফল্টভাবে পিএইচপি ফাইলের কন্টেন্ট ওভাররাইট করে, অর্থাৎ আগের সব কিছু মুছে ফেলে নতুন করে কন্টেন্ট যোগ করে । আমরা যদি চাই আগের কন্টেন্টের সাথে অতিরিক্ত নতুন কন্টেন্ট যোগ করতে তাহলে আমরা ৩য় আর্গুমেন্ট হিসেবে FILE_APPEND কন্সট্যান্টটি পাস করবো । যেমন:

<?php
$file = 'people.txt';
$text = "The Doctor\n";
file_put_contents($file, $text, FILE_APPEND);

এবার যদি আমরা ফাইলটি খুলি তাহলে দেখবো আমাদের আগের কন্টেন্ট এর সাথে এই নতুন টেক্সট যোগ হয়েছে ।

ফাইল পড়া

file_get_contents ফাংশনটিতে কোন ফাইল পাথ পাস করলে এটি ঐ ফাইলের কন্টেন্ট রিটার্ন করবে ।

<?php
$file = file_get_contents('./people.txt');

মজার একটা ব্যাপার হচ্ছে এই ফাংশনটি ওয়েব এ্যাড্রেসও সাপোর্ট করে, অর্থাৎ ওয়েবে থাকা কোন কন্টেন্টও আপনি পড়তে পারবেন এভাবে:

<?php
$content = file_get_contents("http://masnun.com");
var_dump($content);

ফাইল ডিলিট করা

ফাইল ডিলিট করার জন্য আমরা unlink ফাংশনটি ব্যবহার করি ।

<?php
unlink("./people.txt");