know yourselves. information, computer, 7 wonders, various.

Tuesday, April 21, 2020

PHP_Part 13_ PHP ফাইল হ্যন্ডেলিং



Php ফাইল হ্যন্ডেলিং
ফাইল ওপেন করতে open ( ) ফাংশন ব্যবহৃত হয় লেখার নিয়মঃ  
            fopen (filename, mode)
প্রথম প্যারামিটার অর্থাৎ (filename) ফাইলের নাম নির্দেশ করে এবং ২য় প্যারামিটার ফাইলের মোড নির্দেশ করে নিম্নে mode সমূহের লিষ্ট দেয়া হল। এবার চলুন নিচের প্রোগ্রামটি প্রাকটিস করা যাক।
প্রোগ্রামঃ ফাইল ওপেন
১.        আপনার এডিটর notepad++/Dreamweaver/Net beans ওপেন করুন।  নিচের কোড টুকু প্রাকটিস করুন
<html>
<body>
<?php
$file=fopen("welcome.txt","r");
?>
</body> </html>
২.        ফাইলটি  PHP_file001.php নামে সেভ করুন।
ফলাফল :           এবার ব্রাউজারের অ্যাড্রেস বারে লিখুন।
http:\\localhost\PHPLESSON\PHP_ file001.php
৩.        welcome.txt  ফাইলটি ওপেন হবে ।

fopen এরপর ব্রাকেটে দুটি জিনিস আছে একাটি “welcome.txt” অর্থাৎ এই নামের ফাইলটি খুলবে এবং দ্বিতীয়টি “r” এটা একটা প্যারামিটার যেটা দিয়ে ঠিক করে  দেয়া যায় ফাইলটি কোন মোডে খুলবে। এখানে “r” দেয়া আছে তাই এটি read only মোডে খুলবে।
এরকম আরো কিছু প্যারামিটার

Modes
Description
r
Read only. Starts at the beginning of the file
r+
Read/Write. Starts at the beginning of the file
w
Write only. Opens and clears the contents of file; or creates a new file if it doesn't exist
w+
Read/Write. Opens and clears the contents of file; or creates a new file if it doesn't exist
a
Append. Opens and writes to the end of the file or creates a new file if it doesn't exist
a+
Read/Append. Preserves file content by writing to the end of the file
x
Write only. Creates a new file. Returns FALSE and an error if file already exists
x+
Read/Write. Creates a new file. Returns FALSE and an error if file already exists
যদি নির্দিষ্ট ফাইলটি fopen() function টি খুলতে ব্যার্থ হয় তাহলে নিচের মত কোডটি লিখে একটা মেসেজ  দেখানো হয়
<html>
<body>
<?php
$file=fopen("welcome.txt","r") or exit("Unable to open file!");
?>
</body> </html>
একটা ফাইল ক্লোজ করা
fopen() function দিয়ে  খোলা কোন ফাইল বন্ধ করা যায়।
<?php
$file = fopen("test.txt","r");
//some code to be executed
fclose($file);
?>
End-Of-File চেক করা
এটা দিয়ে ফাইলের শেষে পৌঁছাল কিনা তা চেক করা হয়।
If (feof($file)) echo “End of file”;
এটা লুপিং এর সময় কাজে লাগে।

একটা ফাইল Line by Line পড়া
fgets()function টি দিয়ে পিএইচপি তে একটি একটি করে লাইন পড়া যায়। এই ফাংশনটি কল করার সাথে সাথে ফাইল নির্দেশকটি পরের লাইনে চলে যায় । নিচের উদাহরণে দেখুন এটি একটি একটি করে লাইন পড়বে শেষে না পৌঁছানো  পর্যমত্ম।
<?php
$file = fopen("welcome.txt", "r") or exit("Unable to open file!");
//Output a line of the file until the end is reached
while(!feof($file))
{
echo fgets($file). "<br />";
}
fclose($file);
?>





Character by Character একটা ফাইল পড়া
Fgets()function টি একটা ফাইল থেকে একটা একটা করে  অক্ষর পড়বে।
নিচের উদাহরণটি ফাইল থেকে একটি একটি করে  অক্ষর পড়বে।
<?php
$file=fopen("welcome.txt","r") or exit("Unable to open file!");
while (!feof($file))
{
echo fgetc($file);
}
fclose($file);
?>
ফাইল আপলোড
সার্ভারে ফাইল আপলোড করতে হলে আপনাকে কিছু বিষয়ে সতর্ক থাকতে হবে। ফাইলের নাম, সাইজ এবং ফরম্যাট। চলুন কিভাবে ফাইল আপলোড করতে হয় তা দেখি।

প্রথমেই একটি আপলোড করার জন্যে একটি PHP_FileUpload.php  ফাইল বা পেজ ডিজাইন করি।
ফর্মটি তৈরির জন্য নিম্নোক্ত পদক্ষেপগুলো গ্রহণ করুনঃ
১.      আপনার এডিটর notepad++/Dreamweaver/Net beans ওপেন করুন।
২.        নিচের কোড টুকু প্রাকটিস করুন।
৩.        লক্ষ্য করুন, যখন ফর্মটি সাবমিট করা হবে তখন কোন কনমেন্ট-টাইপ ব্যবহৃত হবে তা নির্ধারণ করে <form> ট্যাগের ভেতর থাকা enctype অ্যাট্রিবিউটটি। যখন একটি ফর্মের বাইনারি ডেটার প্রয়োজন পড়ে তখন ’’multipart/form-data” ব্যবহৃত হয়। <input> ট্যাগের type= “file” অ্যাট্রিবিউটটি নির্ধারণ করে দেয় যে ইনপুটটি একটি ফাইল হিসেবে গননা করা হবে।

<html>
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
</body> </html>
৪.        ফাইলটি  FileUpload.php নামে সেভ করুন।
ফলাফল :           এবার ব্রাউজারের অ্যাড্রেস বারে লিখুন।
http:\\localhost\PHPLESSON\ FileUpload.php


৫.        ব্রাউজারে নিম্নোক্ত  চিত্রের মত  ফলাফল প্রদর্শিত হবে।

এবার আপলোড স্ক্রিপ্ট তৈরি করে নেই।
আপলোড-স্ক্রিপ্ট তৈরি করা
1.                 এবার আমাদের ফাইল আপলোড করার জন্য স্ক্রিপ্ট তৈরি করতে হবে। এজন্য File_Upload                         ফোল্ডারটিতে upload_file.php নামের একটি ফাইল তৈরি করুন। এতে নিচের মতো করে কোড গুলো লিখুন।
<?php
if ($_FILES["file"]["error"] > 0)
  {
  echo "Error: " . $_FILES["file"]["error"] . "<br>";
  }
else
  {
  echo "Upload: " . $_FILES["file"]["name"] . "<br>";
  echo "Type: " . $_FILES["file"]["type"] . "<br>";
  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
  echo "Stored in: " . $_FILES["file"]["tmp_name"];
  }
?>
2.                গ্লোবাল পিএইচপি $FILES অ্যারে ব্যবহার করে আপনি কোনো ক্লায়েন্টের কম্পিউটার থেকে রিমোট সার্ভারে ফাইল আপলোড প্রথম প্যারামিটারটি হলো ফর্মের ইনপুট নেম এবং দ্বিতীয় সূচিটি “name”, “type”, “size”, tmp_name” বা “error” হতে পারে। এটি নিচের মতোঃ
·        $FILES (“file”0 9”name”)- আপলোডকৃত ফাইলের নাম
·        $_FILES (“file”) (“type”) আপলোডকৃত ফাইলের টাইপ বা ধারন
·        $ FILES (“file”) (“size) আপলোডকৃত ফাইলের বাইট সাইজ
·        $_FILES (“file”) (tmp_name”) সার্ভারে সংরক্ষিত ফাইলের temporary কপির নাম
$_FILES (“file”) (“error”) আপলোডকৃত ফাইলের কোডের এরর ফলাফল প্রদান করে 
৩.     এবার ব্রাউজারে ফাইল সিলেক্ট করে সাবমিট বাটনে প্রেস করুন, নিচের মতো ফলাফর দেখতে পাবেন।

আপনি যদি এই ফর্মটির মাধ্যমে আপনার কম্পিউটার থেকে কোনো ফাইল লোকালহোস্টে আপলোড করেন তবে তার সংক্ষিপ্ত পরিচিতি পেইজে প্রদর্শিত হবে।
এটি ফাইল আপলোড করার খুবই সাধারণ একটি উপায়। নিরাপত্তাজনিত কারণে ইউজারের আপলোডের উপর বিধি নিষেধ আরোপ করা উচিত।
আপলোডের ক্ষেত্রে বিধি নিষেধ আরোপ:
আমরা এবার একটি স্ক্রিপ্ট তৈরি করবো যেখানো ফাইল আপলোডের উপর কিছু বিধি নিষেধ আরোপ করে দিব। অর্থাৎ ফাইলটি ধরন সাইজ উপর কতটুকু হবে তা বের করা। এতে ইউজার কেবল .gif বা .jpeg ফাইল আপলোড করতে পারবে এবং এর সাইজ অবশ্যই ২০ কিলোবাইটের নিচে হতে হবে। নিচের কোড গুলো প্রদর্শিত করি।
  1. আগের upload_file.php ফাইলটির একটি কপি অন্য কোথাও সংরক্ষণ করে (upload_file2.php নামে নতুন একটি ফাইলও তৈরি করতে পারেন) ওই ফাইলটি খুলুন। ফাইলটিতে নিচের মতো কোড লিখুন।
<?php
$allowedExts = array("jpg", "jpeg", "gif", "png");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Error: " . $_FILES["file"]["error"] . "<br>";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br>";
    echo "Type: " . $_FILES["file"]["type"] . "<br>";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
    echo "Stored in: " . $_FILES["file"]["tmp_name"];
    }
  }
else
  {
  echo "Invalid file";
  }
?>
  1. ফাইলটি সেভ করুন। এবার ব্রাউজারের ফলাফল দেখতে পাবেন।
  2. ২০ কিলোবাইটের চাইতে বড় কোনো ফাইল আপলোড করার জন্য Browse বাটনে ক্লিক করে তা সিলেক্ট করুন। এরপর Submit বাটনে ক্লিক করুন। নিচের মতো বার্তা দেখতে পারবেন। অর্থাৎ আমাদের ফাইল সাইজটি বড় হওয়ার invalid file বার্তা দেখাচ্ছে।
নোটঃ ইন্টারন্টে এক্সপ্লোরার কর্তৃক jpeg ফাইলকে চেনার জন্য এর ধরনটি হতে হবে jepg এবং ফায়ারফক্সের ক্ষেত্রে এর ধরন হতে হবে jpeg
আপলোডকৃত ফাইলকে সেভ করা:
পূর্বের উদাহরণ আমরা দেখি ২০ কিলোবাইটের চাইতে ছোট কোনো ফাইল আপলোড করলে তা একটি অস্থায়ী কপি সার্ভারের PHP temp ফোল্ডারে জমা হয়। স্ক্রিপ্টটি শেষ হয়ে গেলেই এই অস্থায়ী কপিকৃত ফাইলটি অদৃশ্য হয়ে যায়। আপালোডকৃত ফাইলকে সংরক্ষণের জন্য আমাদের এটিকে ভিন্ন কোনো লোকেশনে কপি করে রাখতে হয়। এই স্ক্রিপ্টটি তৈরি করার জন্য নিচের পদক্ষেপগুলো গ্রহণ করুনঃ
1.                 আগের upload_file.php ফাইলটির একটি কপি অন্য কোথাও সংরক্ষণ করে (upload_file3.php নামে নতুন একটি ফাইলও তৈরি করতে পারেন) ওই ফাইলটি খুলুন।
2.                ফাইলটিতে নিচের মতো কোড লিখুন।
<?php
$allowedExts = array("jpg", "jpeg", "gif", "png");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br>";
    echo "Type: " . $_FILES["file"]["type"] . "<br>";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";

    if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?>
3.               ফাইলটি সেভ করুন।
4.                 কোডগুলো যে ফোল্ডারে সেভ করেছেন সেই file_Upload ফোল্ডারের ভেতর upload নামে একটি ফোল্ডার তৈরি করুন। আমাদের আপলোড করা ফাইলগুলো এই ফোল্ডাইে এসে জমা হবে।
5.                এবার ব্রাউজারের ফলাফল দেখতে পাবেন।
6.                ২০ কিলোবাইটের চাইতে বড় কোনো ফাইল আপলোড করার জন্য Browse বাটনে ক্লিক করে তা সিলেক্ট করুন। এরপর Submit বাটনে ক্লিক করুন। নিচের মতো বার্তা দেখতে পারবেন।
7.                এবার একটু আগে আপনার তৈরি করা upload ফোল্ডারে যান। দেখবেন সেখানে একটু আগে আপলোড করা ফাইলটি দেখা যাচ্ছে। 
Previous Post                                                                                           Next Post

  বিস্তারিত জানতে নিচের বইটি সংগরহ করে নিন।

Book Name: Mastering Microsoft  Word
Writer: Bappi Ashraf
Published By: Gyankosh Prokashani
Amount of Pages: 464
First Publish: October-2004
Last Edition: We've February-2015 edition. Future edition may be existed!
Book Price: BDT 350 (30% Discount)
 The writer of this book has told that he has written this book with the concept of "teach yourself". On the other hand, Web Design is a thing which is interesting to learn. He has also told that the book is full of fan and enjoyment so that a person can learn Web Design by himself by playing with the example projects of this book.  Book's CD Link below... 

 cd

RELATED POST LINKS BELOW ********************************************


 PART1 PHP কি, PHP ফাইল, XAMPP ইনস্টলেশন, ইনস্টলিং XAMPP
PART2:- PHP Syntax, ভেরিয়েবল  (Variable), ডিক্লেয়ারিং PHP ভেরিয়েবল, php ভেরিয়েবলে লেখার নিয়ম
PART3:- Operator, Arithmetic Operator, অ্যাসাইনমেন্ট অপারেটর, ইনক্রিমিন্টিং বা ডিক্রিমেন্টিং অপারেটর, কম্পারিজন অপারেটর, লজিক্যাল অপারেটর, অ্যারে অপারেটর

PART4:- Php echo, স্ট্রিং আউটপুট, একসাথে ভেরিয়েবল এবং স্ট্রিংকে echo
PART 5
PHP String, স্ট্রিং ক্যাটেনেশনস্ট্রিং এর লেন্থ নির্ণয়, সাব স্ট্রিং এর পজিশন, সাবস্ট্রিংকে খুঁজে বের করা
PART 6
Php- ডাটা টাইপ Php-অ্যারে, ডাটা টাইপ স্ট্রিং
PART 7 Php-অ্যারে, নিউমেরিক অ্যারে, অ্যাসোসিয়েটিভ অ্যারে
PART 8
PHP লুপ (loop), While loop, Do while লুপ, For loop, Foreach লুপ
PART 9
Break Statement, Continue Statement
PART 10
Php-ফাংশন, ফাংশন প্যারামিটার, ভ্যালু রিটার্ণ করা
PART 11
Php এবং HTML ফর্ম, হ্যান্ডেলিং Php- ফরম, get মেথড, post মেথড, Php Date() ফাংশন, Date - ডেট ফরমেট করা, Date – টাইমস্ট্যাম্প, PHP Date / Time ফাংশন

PART 12
পিএইচপি include, Reqire, Requireফাংশনের ব্যবহার
PART 13
Php ফাইল হ্যন্ডেলিং, ফাইল আপলোড, আপলোড-স্ক্রিপ্ট তৈরি করা, আপলোডের ক্ষেত্রে বিধি নিষেধ আরোপ, আপলোডকৃত ফাইলকে সেভ করা,
PART 14পিএইচপি কুকি (PHP Cookies), কুকি (Cookie)কি, কুকিতৈরি, কুকি পুনরুদ্ধারকরা, কুকি মুছে ফেলা, পিএইচপি: -মেইল প্রেরণ, PHP secure Email,