Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
99 lines (72 sloc) 6.52 KB

ফাইলসিস্টেম

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

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

আমরা নতুন একটি ডিরেক্টরী বা ফোল্ডার তৈরি করতে পারি 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");