এই চ্যাপ্টারে আমরা পিএইচপির ডিরেক্টরী এবং ফাইল সম্পর্কিত কিছু ব্যাসিক অপারেশন দেখবো । এখানে দেখানো পদ্ধতি ছাড়াও আরো নানা পদ্ধতিতে একই কাজ করা যেতে পারে । আপাতত আমরা একটি করে পদ্ধতি দেখবো । পরবর্তীতে আমরা আরো এ্যাডভান্সড ব্যবহার দেখবো ।
আমরা নতুন একটি ডিরেক্টরী বা ফোল্ডার তৈরি করতে পারি 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");