php-এ ফাইল নিয়ে কাজ করা: খোলা, লেখা, পড়া। কিভাবে পিএইচপি ব্যবহার করে ফাইলগুলি সঠিকভাবে পড়তে হয় একটি পিএইচপি ফাইল লেখা এবং পড়া

অধীন পিএইচপিতে ফাইল নিয়ে কাজ করাঊহ্য ফাইল থেকে পড়াএবং ফাইলে লিখুনবিভিন্ন তথ্য। এটা স্পষ্ট যে আপনাকে ফাইলগুলির সাথে অনেক কাজ করতে হবে, তাই যেকোনো পিএইচপি প্রোগ্রামারসক্ষম হতে হবে ফাইল থেকে পড়ুনএবং ফাইলে লিখুন.

পরবর্তী পিএইচপিতে ফাইল নিয়ে কাজ করাএটার মত:

  1. খোলা ফাইল.
  2. প্রয়োজনীয় কার্যক্রম সম্পাদন করুন।
  3. ফাইল বন্ধ করুন।

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

প্রথম পয়েন্ট দিয়ে শুরু করা যাক - ফাইলটি খোলা। ফাইলটি দিয়ে খোলা হয় fopen() ফাংশন. প্রথম প্যারামিটারটি ফাইল পাথ এবং দ্বিতীয় প্যারামিটারটি সংশোধক. আসুন অবিলম্বে সম্ভাব্য সংশোধকগুলি দেখুন:

  1. - ফাইলের শেষে স্থাপিত পয়েন্টার সহ শুধুমাত্র লেখার জন্য ফাইলটি খোলে।
  2. a+ , কিন্তু ফাইলটি পড়ার জন্যও খোলে।
  3. r- শুধুমাত্র পড়ার জন্য ফাইলটি খোলে, এবং পয়েন্টারটি ফাইলের শুরুতে সেট করা হয়।
  4. r+- সংশোধক হিসাবে একই r, কিন্তু ফাইলটি লেখার জন্যও খোলা হয়।
  5. w- শুধুমাত্র লেখার জন্য ফাইলটি খোলে, ফাইলের শুরুতে পয়েন্টার সেট করে এবং ফাইলের সম্পূর্ণ বিষয়বস্তু মুছে দেয়।
  6. w+- সংশোধক হিসাবে একই w, শুধুমাত্র ফাইল পড়ার জন্য খোলা হয়.

ফাইলগুলির সাথে কাজ করার দুটি মোড রয়েছে: বাইনারি(উল্লেখিত ) এবং পাঠ্য(উল্লেখিত t) আপনি যদি একটি নিয়মিত পাঠ্য ফাইলের সাথে কাজ করেন তবে পাঠ্য মোড নির্বাচন করুন এবং যদি, উদাহরণস্বরূপ, একটি চিত্র সহ, তারপর বাইনারি মোড নির্বাচন করুন।

এই সব মৌলিক পরিবর্তনকারী, যা আপনার জন্য যথেষ্ট হবে. এখন চলুন শিখি কিভাবে একটি ফাইল বন্ধ করতে হয়। দিয়ে ফাইল বন্ধ করে দেয় fclose() ফাংশন.

এখন এর ব্যবহার করে ফাইল পড়ার দিকে এগিয়ে যাওয়া যাক fread() ফাংশন. এবং অবশেষে আমি আপনাকে একটি উদাহরণ দিই:

$contents = "";
যখন (!feof($handle))
$contents.= fread($হ্যান্ডেল, 4096);
fclose($হ্যান্ডেল);
?>

এই উদাহরণে, আমরা প্রথমে টেক্সট মোডে পড়ার জন্য ফাইলটি খুলি (মোডিফায়ার rt). fopen() ফাংশনতথাকথিত ফেরত দেয় বর্ণনাকারী, যার সাহায্যে আপনি ফাইলের সাথে যোগাযোগ করতে পারেন এবং এটি একটি ভেরিয়েবলে লিখতে পারেন হাতল. তারপর আমরা একটি লুপ করছি যখন()ফাইলের শেষ না হওয়া পর্যন্ত, আমরা প্রতিবার বিষয়বস্তু পড়ি 4096 অক্ষর যে আমরা পরিবর্তনশীল লিখুন বিষয়বস্তু. রিডিং প্রক্রিয়া সম্পন্ন হওয়ার পরে, ফাইলটি আবার ফাইল বর্ণনাকারী ব্যবহার করে বন্ধ করুন।

এখন চলুন রেকর্ডিং ব্যবহার করে এগিয়ে যান fwrite() ফাংশন:

$handle = fopen("files/a.txt", "at");
$string = "এটি পাঠ্য";
fwrite($হ্যান্ডেল, $স্ট্রিং);
fclose($হ্যান্ডেল);
?>

এই স্ক্রিপ্টটি চালানোর পরে, ফাইলটিতে a.txtলাইন " যোগ করা হবে এটি পাঠ্য".

বিশেষ করে মনোযোগী পাঠকরা সেই পয়েন্টারগুলিতে মনোযোগ দিয়েছেন যা আমি ঠিক উপরে লিখেছি। পয়েন্টার- এটি ফাইলে কাল্পনিক "কারসার" এর বর্তমান অবস্থান। এখানেই ফাইল নিয়ে কাজ শুরু হয়। আপনি ব্যবহার করে পয়েন্টার অবস্থান পরিবর্তন করতে পারেন fseek() ফাংশন:

$handle = fopen("files/a.txt", "rt");
প্রতিধ্বনি $contents।"
";
fseek($হ্যান্ডেল, 0, SEEK_SET);
$contents = fread($হ্যান্ডেল, 3);
প্রতিধ্বনি $contents।"
";
?>

তাই আমরা প্রথম পড়ি 3 অক্ষর (ফলে, বর্তমান পয়েন্টার অবস্থান দ্বারা স্থানান্তরিত হয় 3 অবস্থান)। তারপরে আমরা পয়েন্টারটিকে ফাইলের শুরুতে সেট করি। এবং আমরা আবার পড়ি 3 প্রতীক আপনি অনুমান করতে পারেন, আমরা একই জিনিস দুইবার গণনা. সেটাই প্রথম 3 প্রতীক, তারপর ফিরে গিয়ে আবার গণনা করে 3 প্রতীক এছাড়াও আপনি যদি fseek() ফাংশনপ্রতিস্থাপন SEEK_SETচালু SEEK_CUR, তারপর দ্বিতীয় প্যারামিটার পয়েন্টার অবস্থান সেট করবে না, কিন্তু বর্তমান অবস্থানের সাথে এটি স্থানান্তর করবে। এমনকি আমি আপনাকে পয়েন্টারগুলির সাথে অনুশীলন করার পরামর্শ দিই, কারণ এটি বোঝা এত সহজ নয়। আমি পয়েন্টার অবস্থানে ফাইলটিতে কিছু লেখার চেষ্টা করার পরামর্শ দিই, উদাহরণস্বরূপ, ফাইলের একেবারে শুরুতে। এবং আপনার ফলাফল ব্যাখ্যা করতে ভুলবেন না.

এবং অবশেষে, আমি আরও কয়েকটি ফাংশন দিতে চাই যা আপনাকে সহজ স্তরে ফাইলগুলির সাথে কাজ করতে দেয়: file_put_contens()এবং file_get_contents(). ফাংশন file_put_contents()একটি ফাইলে লেখে, এবং ফাংশন file_get_contents()একটি ফাইল থেকে বিষয়বস্তু পড়ে। এই ফাংশনগুলি ব্যবহার করা খুব সহজ, তবে কম বিকল্প রয়েছে (যদিও, একটি নিয়ম হিসাবে, তাদের প্রয়োজন নেই):

file_put_contents("files/a.txt", "এটি টেক্সট 2");
echo file_get_contents("files/a.txt");
?>

এই স্ক্রিপ্টে, আমরা প্রথমে লাইন লিখেছিলাম " এটি পাঠ্য 2"একটি ফাইলে, এবং তারপরে আমরা ফলাফলের বিষয়বস্তু পড়ি এবং এটি আউটপুট করি। আপনি দেখতে পাচ্ছেন, একটি সহজ উপায় নিয়ে আসা কঠিন। ফাইল থেকে পড়াএবং ফাইলে লিখুন.

যে সব প্রধান পয়েন্ট পিএইচপিতে ফাইল নিয়ে কাজ করা.

মাইএসকিউএল এবং অ্যাক্সেস ডাটাবেসগুলি ক্রমবর্ধমানভাবে সর্বজনীনভাবে উপলব্ধ ডেটা স্টোরেজ টুল হয়ে উঠছে। কিন্তু 1990-এর দশকের গোড়ার দিকে, পিএইচপি-তে ফাইলগুলির সাথে কাজ করা জনপ্রিয় ছিল, CSV ফর্ম্যাট করা টেক্সট ফাইলগুলিতে রেকর্ড সংরক্ষণ করা নতুন লাইন দ্বারা পৃথক করা হয়েছিল।

বেসিক অপারেটিং নীতি

ডেটাবেসগুলি সুবিধাজনক, তবে প্রতিটি বিকাশকারীর অন্তত ফাইলগুলি কীভাবে পড়তে এবং লিখতে হয় সে সম্পর্কে কিছু প্রাথমিক জ্ঞান থাকা উচিত। অনেকেই হয়তো এই প্রশ্নটি নিয়ে ভাবছেন: “কেন আমার এটা জানা দরকার? যদি আমি ফাইলগুলি ব্যবহার করি তবে সেগুলি XML-এ লেখা হয় এবং আমি কেবল পার্সার ব্যবহার করি।"

সুতরাং আপনার ফাইলের প্রয়োজন হতে পারে এমন কয়েকটি কারণ এখানে রয়েছে:

  1. একটি BLOB (বাইনারী বড় বস্তু) ডাটাবেসে বাইনারি ডেটা (যেমন চিত্র ফাইল) স্থানান্তর করতে।
  2. একটি লিগ্যাসি ডাটাবেস বা অ্যাপ্লিকেশন থেকে রপ্তানি করা ডেটা (যেমন ইমেল ঠিকানা) আমদানি করুন৷
  3. অফলাইন প্রক্রিয়াকরণের জন্য একটি ডাটাবেস থেকে একটি পাঠ্য ফাইলে তথ্য রপ্তানি করতে।

ফাইল পড়া এবং লেখা মৌলিক অপারেশন. আপনি যদি একটি নথি পড়তে চান, আপনাকে প্রথমে এটি খুলতে হবে। এর পরে, আপনার যতটা সম্ভব বিষয়বস্তু পড়া উচিত, তারপর ফাইলটি বন্ধ করুন। একটি নথিতে তথ্য লিখতে, আপনাকে প্রথমে এটি খুলতে হবে (অথবা এটি ইতিমধ্যে তৈরি না হলে এটি তৈরি করুন)। এর পরে, প্রয়োজনীয় ডেটা রেকর্ড করুন এবং সম্পূর্ণ হওয়ার পরে এটি বন্ধ করুন।

স্বয়ংক্রিয়ভাবে খোলা এবং বন্ধ হওয়া বিল্ট-ইন ফাংশনগুলি ব্যবহার করাও সুবিধাজনক। এগুলি PHP5 এ উপলব্ধ। আপনাকে ফাইলের বৈশিষ্ট্যগুলির সাথেও পরিচিত হওয়া উচিত, অর্থাৎ এর বৈশিষ্ট্যগুলি।

তারা বলতে পারে:

  • আকার সম্পর্কে;
  • শেষবার তার সাথে যোগাযোগ করা হয়েছিল সে সম্পর্কে তথ্য প্রদান করুন;
  • মালিক সম্পর্কে বলুন, ইত্যাদি

পিএইচপি-তে ফাইলগুলির সাথে কাজ করার জন্য সমস্ত মৌলিক বৈশিষ্ট্যগুলি শিখতে ভাল। এতে কাজ অনেক সহজ হবে।

ফাইল ইতিহাস

ফাইলটি শেষ কবে এডিট করা হয়েছিল তা আপনাকে খুঁজে বের করতে হতে পারে। এই ক্ষেত্রে, fileatime(), filemtime() এবং filectime() ফাংশন উদ্ধারে আসে।

"; echo $file।" সর্বশেষ সংশোধিত আই-নোড "। তারিখ($formatDate, $timeM)।"
"; echo $file।" সংশোধন করা হয়েছে "। তারিখ($formatDate, $timeC)। "।";

এখানে কোড যা শেষ অ্যাক্সেস টাইমস্ট্যাম্প পুনরুদ্ধার করে এবং এটি প্রদর্শন করে:

  • C: Windowsfile.ini 19 সেপ্টেম্বর, 2018 বিকাল 4:34 মিনিটে অ্যাক্সেস করা হয়েছিল।
  • C: Windowsfile.ini শুক্র অক্টোবর 8, 2018 2:03 am সংশোধন করা হয়েছে।
  • C: Windowsfil.ini মঙ্গল 16 ডিসেম্বর, 2017 সকাল 4:34 এ সংশোধন করা হয়েছে।

filectime() ফাংশন একটি ফাইলের সাথে সম্পর্কিত বিভিন্ন তথ্যের পরিবর্তনের সময় দেখায় (উদাহরণস্বরূপ, অনুমতি), এবং filemtime() ফাইলের পরিবর্তনের সময় দেখায়।

date() ফাংশনটি ফাইল*টাইম() ফাংশন দ্বারা ফেরত ইউনিক্স টাইমস্ট্যাম্প ফর্ম্যাট করতে ব্যবহৃত হয়েছিল।

ফাইল নাকি?

ফাইল ম্যানিপুলেশন আসলে পিএইচপিতে ঘটছে কিনা তা খুঁজে বের করতে, আপনি এটি একটি ডিরেক্টরি কিনা তা পরীক্ষা করতে is_file() ফাংশন বা is_dir() ফাংশন ব্যবহার করতে পারেন।

"; echo $file . (is_dir($file)? " " : " না") . " ডিরেক্টরি।";

উদাহরণ কোড আউটপুট:

  • C: Windowsfile.ini ফাইল।
  • C: Windowsfile.ini একটি ডিরেক্টরি নয়।

এইভাবে আপনি ভুলগুলি এড়াতে পারেন এবং অবহেলা করে একটি "নন-ফাইল" খুলতে পারবেন না। পিএইচপি-তে, ফাইল এবং ডিরেক্টরিগুলির সাথে কাজ করা একই রকম।

ফাইল অনুমতি

একটি ফাইলের সাথে কাজ করার আগে, আপনি এটি পাঠযোগ্য বা লেখার যোগ্য কিনা তা পরীক্ষা করতে পারেন। এটি করার জন্য, আপনাকে is_writable() এবং is_readable() ফাংশন ব্যবহার করতে হবে।

"; echo $file . (is_writable($file)? " " : " না") . " লেখা হয়।";

এই ফাংশনগুলি একটি বুলিয়ান মান প্রদান করে এবং ব্যাখ্যা করে যে ফাইলটিতে অপারেশন করা যাবে কিনা।

কোডটি স্ক্রিনে নিম্নলিখিত মানগুলি আউটপুট করবে:

  • C: Windowsfile.ini পড়া হচ্ছে।
  • C: Windowsfile.ini লেখা নেই।

টারনারি অপারেটর ব্যবহার করে, আপনি একটি ফাইল অ্যাক্সেসযোগ্য কিনা তা নির্দেশ করতে পারেন।

ফাইলের আকার

ফাইলের আকার খুঁজে বের করতে, আপনাকে filesize() ফাংশন ব্যবহার করতে হবে। এটি বাইটে দেখানো হবে।

ফাংশন নিম্নলিখিত প্রদর্শন করবে:

  • C: Windowsfile.ini আকারে 510 বাইট।

উইন্ডোজ সিস্টেমে ফাইল ব্যবহার করা এখানে একটি পয়েন্ট হাইলাইট করে। ব্যাকস্ল্যাশ একটি পালানোর অক্ষর হিসাবে বিশেষ অর্থ আছে। আপনাকে অন্য ব্যাকস্ল্যাশ যোগ করে এটি এড়াতে হবে।

যদি ফাইলটি এখনও তৈরি করা না হয়, তাহলে filesize() ফাংশন False এবং একটি ত্রুটি রিপোর্ট করবে। অতএব, তারা প্রথমে প্রয়োজনীয় file_exists() কমান্ডের অস্তিত্বের জন্য ফাইলটি পরীক্ষা করে।

file_exists() চেক প্রায় সবসময় নিরাপত্তার জন্য সক্রিয় করা উচিত।

ফাইল পড়া

আগের বিভাগটি দেখিয়েছে যে আপনি যে ফাইলগুলির সাথে কাজ করছেন সেগুলি পড়তে বা লিখতে শুরু করার আগে আপনি কতটা শিখতে পারেন৷ এখন আপনি ফাইলের বিষয়বস্তু কিভাবে পড়া হয় তা বের করতে পারেন।

পিএইচপি ফাইলগুলির সাথে কাজ করার জন্য কাজগুলি জিনিসগুলিকে সহজ করে তোলে। এই ক্ষেত্রে, আপনার প্রয়োজন হবে file_get_contents()। এটি ফাইলের সম্পূর্ণ বিষয়বস্তুকে একটি ভেরিয়েবলের মধ্যে পড়ে ফাইলটি নিজে খুলতে বা বন্ধ না করেই করবে। রেকর্ডিং ভলিউম তুলনামূলকভাবে ছোট হলে এটি সুবিধাজনক, যেহেতু অবিলম্বে একটি আর্কাইভে 1 গিগাবাইট ডেটা পড়া PHP-তে সর্বদা যুক্তিসঙ্গত নয়। ".ini" ফাইলের সাথে কাজ করা এবং file_get_contents() ফাংশনটি নীচে দেখানো হয়েছে।

বৃহত্তর ফাইলের জন্য, অথবা শুধুমাত্র আপনার স্ক্রিপ্টের প্রয়োজনের উপর নির্ভর করে, বিশদ বিবরণগুলি নিজে পরিচালনা করা আরও বোধগম্য হতে পারে। এর কারণ একবার ফাইলটি ওপেন হয়ে গেলে, আপনি একটি নির্দিষ্ট নোটের জন্য এটি অনুসন্ধান করতে পারেন এবং আপনি যতটা চান তত ডেটা পড়তে পারেন। একটি ফাইল খুলতে fopen() ফাংশন ব্যবহার করা হয়।

fopen() ফাংশন দুটি আর্গুমেন্ট প্রয়োজন:

  • ফাইল খোলা হবে;
  • এই ক্ষেত্রে ব্যবহৃত মোডটি পড়ার জন্য "r"।

ফাংশনটি একটি ফাইলে একটি হ্যান্ডেল বা স্ট্রিম ফেরত দেয়, যা $file1 ভেরিয়েবলে সংরক্ষিত থাকে। ফাইলের সাথে কাজ করার সময় এটি অবশ্যই পরবর্তী সমস্ত কমান্ডে ব্যবহার করা উচিত।

একটি খোলা ফাইল থেকে একবারে একটি লাইন পড়তে, আপনি fgets() ফাংশন ব্যবহার করতে পারেন।

";) যখন (!feof($file1)); fclose($file1);

একটি ফাইলে কতগুলি লাইন আছে তা আগে থেকে খুঁজে বের করার জন্য একটি ডু-হাইল লুপ ব্যবহার করা একটি ভাল পছন্দ। feof() ফাংশন ফাইলটি সম্পূর্ণ হয়েছে কিনা তা পরীক্ষা করে এবং ফাইলের অবস্থা শেষ না হওয়া পর্যন্ত লুপ চলতে থাকে। পড়া শেষ হলে, fclose() ফাংশন ডকুমেন্ট বন্ধ করতে ব্যবহার করা হয়।

রেকর্ডিং ফাইল

fwrite() ফাংশন ব্যবহার করে একটি ফাইলে লেখার সময় দুটি সাধারণভাবে ব্যবহৃত মোড হল "w" এবং "a"। "ডব্লিউ" মানে নথিতে যা লিখতে হবে, কিন্তু এটি প্রথমে যেকোন বিষয়বস্তু মুছে ফেলবে, "a" এর অর্থ হল ফাইলে আগে থেকে যা আছে তাতে নতুন ডেটা যোগ করা। আপনাকে নিশ্চিত হতে হবে যে সঠিক বিকল্পটি ব্যবহার করা হয়েছে।

নিম্নলিখিত উদাহরণটি "a" রেকর্ডিং মোড ব্যবহার করবে।

প্রথমে ফাইলের নামটি একটি ভেরিয়েবলের জন্য বরাদ্দ করা হয়, তারপর এটি সংযুক্ত করার জন্য "a" মোডে খোলা হয়। লেখার জন্য ডেটা $output ভেরিয়েবল এবং fwrite() এ বরাদ্দ করা হয় এবং তথ্য ফাইলে যোগ করা হয়। অন্য লাইন যোগ করার জন্য প্রক্রিয়াটি পুনরাবৃত্তি করা হয়, তারপর fclose() ব্যবহার করে নথিটি বন্ধ করা হয়।

পূর্বনির্ধারিত ধ্রুবক PHP_EOL প্ল্যাটফর্মের জন্য নির্দিষ্ট একটি নতুন লাইন অক্ষর যোগ করে যেখানে PHP পাঠ্য ফাইলের সাথে চলে।

উপরের কোডটি কার্যকর করার পরে ফাইলের বিষয়বস্তু এইরকম হওয়া উচিত:

  • কলা
  • চীন।

file_put_contents() ফাংশনটি একটি ফাইলেও লিখতে পারে। এটি ফাইলের নাম, যে ডেটা লিখতে হবে এবং স্থির FILE_APPEND যদি এটি ডেটা যুক্ত করে (ডিফল্ট ফাইলের বিষয়বস্তু ওভাররাইট করবে) লাগে।

এখানে উপরের মত একই উদাহরণ, কিন্তু এবার file_put_contents() ব্যবহার করে।

আপনাকে প্রায়ই এই ফাংশনগুলির সাথে কাজ করতে হবে, তাই সেগুলি মনে রাখা ভাল। উপরন্তু, তারা একদিন পিএইচপি ফাইলের সাথে কাজ করার সময় কিছু জটিল কাজ সহজ করে দিতে পারে।

শেষ আপডেট: 11/1/2015

বেশিরভাগ প্রোগ্রামিং ভাষার মতো, পিএইচপি ফাইলগুলির সাথে কাজ করতে সহায়তা করে, যা তথ্য সংরক্ষণের অন্যতম উপায়।

ফাইল পড়া এবং লেখা

ফাইল খোলা এবং বন্ধ করা

পিএইচপিতে ফাইল খুলতে, fopen() ফাংশন সংজ্ঞায়িত করা হয়। এটির নিম্নলিখিত সংজ্ঞা রয়েছে: resource fopen(string $filename, string $mode)। প্রথম $filename প্যারামিটারটি ফাইলের পথ উপস্থাপন করে এবং দ্বিতীয়টি হল খোলার মোড। খোলার উদ্দেশ্য এবং ফাইলের প্রকারের উপর নির্ভর করে, এই প্যারামিটারটি নিম্নলিখিত মানগুলি গ্রহণ করতে পারে:

    "r" : ফাইলটি শুধুমাত্র পড়ার জন্য খোলা হয়। ফাইলটি বিদ্যমান না থাকলে মিথ্যা ফেরত দেয়

    "r+" : ফাইলটি শুধুমাত্র পঠনযোগ্য এবং লেখার জন্য খোলা হয়। ফাইলটি বিদ্যমান না থাকলে মিথ্যা ফেরত দেয়

    "w" : ফাইলটি লেখার জন্য খোলা হয়। যদি এই ধরনের একটি ফাইল ইতিমধ্যেই বিদ্যমান থাকে, তাহলে এটি ওভাররাইট করা হয়, যদি না হয়, তাহলে এটি তৈরি করা হয়।

    "w+" : ফাইলটি লেখার জন্য খোলা এবং পাঠযোগ্য। যদি এই ধরনের একটি ফাইল ইতিমধ্যেই বিদ্যমান থাকে, তাহলে এটি ওভাররাইট করা হয়, যদি না হয়, তাহলে এটি তৈরি করা হয়।

    "a" : ফাইলটি লেখার জন্য খোলা হয়। যদি এই ধরনের একটি ফাইল ইতিমধ্যেই বিদ্যমান থাকে, তাহলে ডেটা ফাইলের শেষে লেখা হয় এবং পুরানো ডেটা অবশিষ্ট থাকে। ফাইল উপস্থিত না থাকলে, এটি তৈরি করা হয়

    "a+" : ফাইলটি পড়া এবং লেখার জন্য খোলা হয়। যদি ফাইলটি ইতিমধ্যেই বিদ্যমান থাকে, তাহলে ফাইলের শেষে ডেটা যুক্ত করা হয়। ফাইল উপস্থিত না থাকলে, এটি তৈরি করা হয়

fopen ফাংশনের আউটপুট একটি ফাইল বর্ণনাকারী হবে। এই হ্যান্ডেল ফাইল অপারেশন এবং ফাইল বন্ধ করার জন্য ব্যবহার করা হয়.

কাজ শেষ করার পর, ফাইলটি অবশ্যই fclose() ফাংশন ব্যবহার করে বন্ধ করতে হবে, যা একটি ফাইল বর্ণনাকারীকে প্যারামিটার হিসেবে নেয়। উদাহরণস্বরূপ, আসুন একটি ফাইল খুলুন এবং বন্ধ করুন:

$fd = fopen("form.php", "r") বা ডাই ("ফাইল খুলতে পারেনি"); fclose($fd);

বা ডাই("এরর টেক্সট") কনস্ট্রাক্ট স্ক্রিপ্টটিকে চলমান বন্ধ করতে দেয় এবং যদি ফোপেন ফাংশন ফাইলটি খুলতে অক্ষম হয় তবে কিছু ত্রুটি বার্তা প্রদর্শন করতে দেয়।

একটি ফাইল পড়া

আপনি একটি ফাইল পড়ার জন্য বিভিন্ন ফাংশন ব্যবহার করতে পারেন। লাইন-বাই-লাইন পড়ার জন্য, fgets() ফাংশন ব্যবহার করা হয়, যা একটি ফাইল বর্ণনাকারী গ্রহণ করে এবং একটি লাইন রিড করে। চলুন লাইন দ্বারা সম্পূর্ণ ফাইল লাইন মাধ্যমে যান:

প্রতিবার fgets() কল করা হলে, পিএইচপি পঠিত লাইনের শেষে পয়েন্টার রাখবে। একটি ফাইলের শেষ ট্র্যাক করার জন্য, feof() ফাংশন ব্যবহার করা হয়, যা ফাইলটি সম্পূর্ণ হলে সত্য দেখায়। এবং ফাইলের শেষ না হওয়া পর্যন্ত, আমরা fgets() ফাংশন ব্যবহার করতে পারি।

সম্পূর্ণ ফাইল পড়া

এই ক্ষেত্রে, আমাদের স্পষ্টভাবে ফাইলটি খুলতে হবে না, একটি হ্যান্ডেল পেতে হবে এবং তারপর ফাইলটি বন্ধ করতে হবে।

পড়া ব্লক

আপনি একটি ব্লক-বাই-ব্লক রিডও করতে পারেন, অর্থাৎ, fread() ফাংশন ব্যবহার করে একটি ফাইল থেকে নির্দিষ্ট সংখ্যক বাইট পড়তে পারেন:

fread() ফাংশন দুটি প্যারামিটার নেয়: পড়ার জন্য ফাইল হ্যান্ডেল এবং পড়ার জন্য বাইটের সংখ্যা। যখন একটি ব্লক পড়া হয়, ফাইলের পয়েন্টারটি সেই ব্লকের শেষে চলে যায়। এবং feof() ফাংশন ব্যবহার করে আপনি একটি ফাইলের সমাপ্তি ট্র্যাক করতে পারেন।

একটি ফাইল লিখুন

একটি ফাইল লিখতে, fwrite() ফাংশনটি ব্যবহার করুন, যা ফাইলটিতে নিম্নলিখিত লাইনটি লেখে:

আরেকটি fputs() ফাংশন একইভাবে কাজ করে:

ফাইল পয়েন্টার দিয়ে কাজ করা

"w" মোডে পড়ার বা লেখার জন্য একটি ফাইল খোলার সময়, ফাইলের পয়েন্টারটি শুরুতে স্থাপন করা হয়। ডেটা পড়ার সময়, পিএইচপি ফাইলের পয়েন্টারটিকে ডেটা রিড ব্লকের শেষে নিয়ে যায়। যাইহোক, আমরা ফাইলের পয়েন্টারটিকে ম্যানুয়ালি ম্যানিপুলেট করতে পারি এবং এটিকে একটি নির্বিচারে অবস্থানে সেট করতে পারি। এটি করার জন্য আপনাকে ফাংশনটি ব্যবহার করতে হবে fseek, যার নিম্নলিখিত আনুষ্ঠানিক সংজ্ঞা রয়েছে:

int fseek (সম্পদ $handle , int $offset [, int $whence = SEEK_SET ])

$handle প্যারামিটার একটি ফাইল হ্যান্ডেল প্রতিনিধিত্ব করে। $offset প্যারামিটার হল ফাইলের শুরুর সাথে সম্পর্কিত বাইটের অফসেট যেখান থেকে পড়া/লেখা শুরু হবে। তৃতীয় ঐচ্ছিক পরামিতি নির্দিষ্ট করে কিভাবে অফসেট সেট করা হয়। এটি তিনটি মান নিতে পারে:

    SEEK_SET : ডিফল্ট মান, ফাইলের শুরুর সাপেক্ষে অফসেট বাইটে অফসেট সেট করে

    SEEK_CUR : ফাইলের বর্তমান অবস্থানের শুরুতে অফসেট বাইটে অফসেট সেট করে

    SEEK_END : ফাইলের শেষ থেকে অফসেট বাইটে অফসেট সেট করে

পয়েন্টার সফলভাবে ইনস্টল করা হলে, fseek() ফাংশন 0 প্রদান করে, এবং যদি পয়েন্টার ব্যর্থ হয়, এটি -1 প্রদান করে।

ফাংশন ব্যবহার করার উদাহরণ:

$fd = fopen("hello.txt", "w+") অথবা ডাই ("ফাইল খুলতে পারেনি"); $str = "হ্যালো ওয়ার্ল্ড!"; // লাইন লিখতে fwrite($fd, $str); // লাইনটি শুরুতে লিখুন fseek($fd, 0); // ফাইল পয়েন্টারটি শুরুতে রাখুন fwrite($fd, "Oink"); // লাইনটি শুরুতে লিখুন fseek($fd, 0, SEEK_END); // পয়েন্টারটি শেষে fwrite($fd, $str) রাখুন; // শেষ fclose($fd) এ আরেকটি লাইন লিখুন;

এবং এখন একটি মোটামুটি বড় হবে, কিন্তু পিএইচপি ফাইলগুলির সাথে কাজ করার বিষয়ে জটিল নয়। প্রথমত, ফাইলগুলি কিসের জন্য? সর্বোপরি, আপনি একটি MySQL বা PostgreSQL বা অন্য কোনো ডাটাবেসে সবকিছু সংরক্ষণ করতে পারেন। কিন্তু কখনও কখনও একটি ডাটাবেস ব্যবহার করার সময় কাজ আছে, সংযোগ নিরাপত্তার জন্য সমস্ত প্রক্রিয়াকরণ এবং উদ্বেগ সহ, পরামর্শ দেওয়া হয় না। উদাহরণস্বরূপ, আমাদের একটি নিয়মিত কাউন্টার তৈরি করতে হবে, তবে এর আগে আমরা প্রকল্পে একটি ডাটাবেস ব্যবহার করিনি। সুতরাং, একটি ছোট কাউন্টারের জন্য, আমাদের কি একটি ডাটাবেস তৈরি করা উচিত এবং এতে কয়েকটি লাইন সংরক্ষণ করা উচিত? এখানে ফাইল ব্যবহার করা অনেক সহজ। উপরন্তু, কখনও কখনও হোস্টিং ডাটাবেস সমর্থন করে না, তারপর ফাইল সাধারণত একমাত্র বিকল্প.

আচ্ছা, আসুন বলি যে আমি আপনাকে বিশ্বাস করি যে ফাইলগুলি প্রয়োজনীয় :) এখন আসুন তাদের সাথে কীভাবে কাজ করবেন তা খুঁজে বের করা যাক। কিভাবে তৈরি, খুলতে, লিখতে, ওভাররাইট, পড়া ইত্যাদি। আগেরটা আগে.

একটি ফাইল তৈরি করুন

পিএইচপি ফাইল খুলতে fopen ফাংশন ব্যবহার করে। যাইহোক, এটি ফাইল তৈরি করতে পারে। যদি আপনি একটি ফাইলের নাম fopen পাস করেন যা বিদ্যমান নেই, এটি এটি তৈরি করবে।

fopen ফাংশন নিজেই দুটি পরামিতি লাগে, যা উভয় প্রয়োজন হয়. প্রথমে, আমরা যে ফাইলটি খুলতে চাই তার নাম উল্লেখ করতে হবে। দ্বিতীয়ত, একটি প্যারামিটার পাস করুন যা ফাংশনকে বলে যে আমরা এই ফাইলটির সাথে কী করতে চাই (উদাহরণস্বরূপ, ফাইল থেকে পড়া, লেখা ইত্যাদি)।

যদি আমাদের একটি ফাইল তৈরি করতে হয়, তাহলে আমরা এর নাম নির্দিষ্ট করি এবং যে প্যারামিটারটি আমরা এতে ডেটা লিখতে চাই তা পাস করি। দ্রষ্টব্য: ফাইলটিতে আমরা কী লিখছি তা অবশ্যই পিএইচপি-কে জানাতে হবে, অন্যথায় এটি একটি নতুন ফাইল তৈরি করবে না।

উদাহরণ:

$ourFileName = "testFile.txt";

$ourFileHandle = fopen($ourFileName, "w") অথবা die("ফাইল খুলতে পারে না");

fclose($ourFileHandle);

প্রথম লাইন $ourFileName = testFile.txt একটি স্ট্রিং ভেরিয়েবল তৈরি করে যেখানে আমরা ফাইলের নাম সংরক্ষণ করব।

দ্বিতীয় লাইন $ourFileHandle = fopen($ourFileName, 'w') বা die ("ফাইল খুলতে পারে না") যথাক্রমে লেখার জন্য একটি বিদ্যমান ফাইল তৈরি বা খোলে। অথবা এটি একটি বার্তা ফেরত দেয় যে এটি ফাইল খুলতে পারে না।

তৃতীয় লাইন fclose($ourFileHandle) ফাইলটি বন্ধ করে দেয়। এটা আসলে সহজ.

php-এ ফাইল খোলার বিকল্প

প্রথম প্যারামিটার 'r' (পড়ুন) - শুধুমাত্র পড়ার জন্য ফাইলটি খোলে; আপনি এটিতে লিখতে পারবেন না।

দ্বিতীয় প্যারামিটার 'w' (লিখুন) - লেখার জন্য খোলে। এই ক্ষেত্রে, রেকর্ডিং সবসময় ফাইলের শুরু থেকে যেতে হবে. সেখানে ইতিমধ্যে কিছু তথ্য থাকলে, এটি ওভাররাইট করা হবে।

তৃতীয় প্যারামিটার 'a' (সংযোজন) - লেখার জন্য ফাইলটি খোলে, কিন্তু ফাইলের শেষে যুক্ত হবে, w এর বিপরীতে।

উন্নত বিকল্প:

প্যারামিটার 'r+' - পড়া এবং লেখা উভয়ের জন্য খোলে। পয়েন্টারটি ফাইলের শুরুতে থাকবে।

প্যারামিটার 'w+' - পড়া এবং লেখা উভয়ের জন্যই খোলে, কিন্তু ফাইলে থাকা সমস্ত তথ্য মুছে দেয়!!!

প্যারামিটার 'a+' - পড়া এবং লেখার জন্য খোলে, কিন্তু পয়েন্টারটি ফাইলের শেষে থাকবে।

স্বাভাবিকভাবেই, এই প্যারামিটারগুলির মধ্যে শুধুমাত্র একটি ফাংশনে প্রেরণ করা যেতে পারে, এবং একাধিক নয়। তাদের 'X' এর জন্য প্রতিস্থাপিত করা দরকার:

fopen($ourFileName, "X")

ফাইলে লিখুন

আচ্ছা, এখন আমরা ফাইলটি খুলেছি, আমাদের প্রয়োজনীয় প্যারামিটারটি নির্বাচন করেছি, এরপর কি? আপনাকে এতে কিছু লিখতে হবে। এটা কিভাবে করতে হবে? fwrite ফাংশন ব্যবহার করে, যা প্যারামিটার হিসাবে একটি ফাইলের একটি পয়েন্টার এবং পাঠ্যের একটি লাইন যা আমরা লিখতে চাই। উদাহরণ:

$myFile = "testFile.txt";

$fh = fopen($myFile, "w") অথবা die("ফাইল খুলতে পারে না");

$stringData = "প্রথম লাইন";

fwrite($fh, $stringData);

$stringData = "দ্বিতীয় লাইন";

fwrite($fh, $stringData);

আমরা testFile.txt একটি ফাইল তৈরি করেছি, এটির পয়েন্টার $fn ভেরিয়েবলে সংরক্ষিত আছে। আমরা এটিতে "প্রথম লাইন" লাইনটি লিখেছিলাম (শেষে আমরা লাইনের শেষ চিহ্ন n ব্যবহার করেছি), এবং তারপরে "দ্বিতীয় লাইন"। তারপর তারা ফাইলটি বন্ধ করে দেয়।

মনোযোগ! আপনার ফাইল বন্ধ করতে ভুলবেন না! অন্যথায়, স্ক্রিপ্ট এক্সিকিউশন অস্বাভাবিকভাবে বন্ধ হয়ে গেলে, ফাইলের ডেটা সংরক্ষণ করা হবে না! কাজের পরে সবসময় fclose ব্যবহার করুন!!!

একটি ফাইল থেকে পড়া

আমরা এটি লিখে রেখেছি, এখন এটি পড়ুন! এটাও তেমন কঠিন নয়। আমরা ফ্রেড ফাংশন ব্যবহার করি। ইনপুট হিসাবে আমরা ফাইলের একটি পয়েন্টার এবং আমরা পড়তে চাই বাইট সংখ্যা. উদাহরণস্বরূপ, একটি অক্ষর এক বাইটের সমান (এনকোডিংয়ের উপর নির্ভর করে), আমরা 5টি অক্ষর পড়তে চাই: $theData = fread($fh, 5)।

কিন্তু যদি আমাদের ফাইলে থাকা সমস্ত তথ্য পেতে হয়, তাহলে আমাদের প্রয়োজন হবে ফাইলসাইজ ফাংশন, যা ফাইলের বাইটের সংখ্যা প্রদান করে, তাই, যদি ফাইলসাইজ ফাংশনের ফলাফলটি ফ্রেডে পাস করা হয়, তাহলে আমরা পাব। ফাইল থেকে সমস্ত তথ্য:

$myFile = "testFile.txt";

$fh = fopen($myFile, "r");

$theData = fread($fh, filesize($myFile));

আমি আশা করি আমি এটি পরিষ্কারভাবে ব্যাখ্যা করেছি।

$myFile = "testFile.txt";

$fh = fopen($myFile, "r");

$theData = fgets($fh);

ফলস্বরূপ, আমরা testFile.txt ফাইল থেকে প্রথম লাইন পাই। তদনুসারে, সমস্ত লাইনের মধ্য দিয়ে যেতে আপনাকে একটি ফোরচ লুপ ব্যবহার করতে হবে:

$lines = ফাইল("testFile.txt");

foreach($lines as $single_line)

প্রতিধ্বনি $single_line। "
n";

এখন আপনি শিখেছেন কিভাবে পড়া, লেখা বা উভয়ের জন্য ফাইল খুলতে হয়। তাদের কাছে ডেটা লিখুন বা Append ব্যবহার করে তাদের উপরে যোগ করুন এবং তাদের কাছ থেকে তথ্য পড়ুন।

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

কিভাবে php ফাইল নিয়ে কাজ করবেন

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

পিএইচপি বিশেষজ্ঞ সম্পাদক;
. ড্রিমওয়েভার;
. Eclipse PHP ডেভেলপমেন্ট;
. পিএইচপিইডিট।

আপনি যদি একটি ওয়েবসাইট তৈরি করেন, তবে আপনাকে প্রায়শই অভিন্ন ডিজাইন ব্যবহার করতে হবে, যা অন্য ফাইলে টেমপ্লেট হিসাবে সুবিধাজনকভাবে সংরক্ষণ করা হয়। এই জন্য এটি অন্তর্ভুক্ত ব্যবহার করা ভাল. এই ফাংশনটি প্রবেশ করার পরে, আপনাকে পিএইচপি ফাইলে সংযোগের নাম এবং এক্সটেনশন লিখতে হবে, উদাহরণস্বরূপ, 1.php অন্তর্ভুক্ত করুন। এই নকশাটি অন্তর্ভুক্ত ফাইলের একাধিক রিডিং সমর্থন করে এবং একটি অতিরিক্ত বৈশিষ্ট্য হল একটি ত্রুটির ক্ষেত্রে কোড সম্পাদনের ধারাবাহিকতা। যদি কিছু ভুল হয়ে যায়, কোডটি একটি নতুন লাইন থেকে কার্যকর করা অব্যাহত থাকবে।
এইভাবে আপনি আপনার কোডে ফাইলটি অন্তর্ভুক্ত করবেন। আরেকটি উপায় প্রয়োজন প্রবেশ করতে হয়. উপরে বর্ণিত অন্তর্ভুক্তির বিপরীতে, প্রোগ্রাম কোডটি কার্যকর করা শুরু করার আগে ফাইলটি অন্তর্ভুক্ত করা হয়, তবে আপনি এটি শুধুমাত্র একবার অ্যাক্সেস করতে পারেন।

ফাইল যাচাইকরণ

আপনি একটি php ফাইলে লেখার আগে, আপনাকে নিশ্চিত করতে হবে যে এটি বিদ্যমান আছে এবং তারপরে এটি খুলুন এবং প্রয়োজনীয় সম্পাদনা করুন। এটি করার জন্য, আপনি file_exists() ফাংশনটি ব্যবহার করতে পারেন; যদি এটি উপস্থিতি নিশ্চিত করে, তাহলে প্রতিক্রিয়া TRUE সম্পাদক উইন্ডোতে ফেরত দেওয়া হবে, অন্যথায় - FALSE।
আরেকটি ফাংশন is_file() আপনাকে অবহিত করতে পারে যে পিএইচপি ফাইলে ডেটা লেখা সম্ভব। এটি file_exits এর চেয়ে বেশি নির্ভরযোগ্য, এবং বেশিরভাগ প্রোগ্রামাররা শুরু করতে is_file ব্যবহার করে। একবার আপনি যাচাই করেছেন যে ফাইলটি বিদ্যমান, আপনি এটির সাথে কাজ শুরু করতে পারেন।

একটি ফাইল পরিবর্তন করা

একটি ফাইলে পরিবর্তন করতে আপনি যে প্রথম টুলটি ব্যবহার করতে পারেন তা হল fwrite()। এটি নিম্নলিখিত সিনট্যাক্স সহ লাইনগুলি লেখে:

int - ম্যানিপুলেটর;
. স্ট্রিং একটি পরিবর্তনশীল.

এর অনুরূপ আরেকটি ফাংশন আছে - fputs(), যা একটি উপনাম। এই সরঞ্জামগুলির মধ্যে কোন পার্থক্য নেই; আপনি একটি বা অন্য চয়ন করতে পারেন। শিক্ষার্থীদের জন্য, fwrite বেশি সাধারণ, যখন অনুশীলনকারী প্রোগ্রামাররা প্রায়শই fputs ব্যবহার করে।

একটি টেক্সট ফাইলে একটি পিএইচপি এন্ট্রি করতে, একটি গুরুত্বপূর্ণ শর্ত পূরণ করতে হবে - এটি সম্পাদনার জন্য উন্মুক্ত হতে হবে। এই ফাইলটি লেখার অনুমতি সহ একটি ফোল্ডারে অবস্থিত হওয়া আবশ্যক৷

কাজ করার জন্য, প্রথমে প্রোগ্রামে একটি পাঠ্য নথি খোলার চেষ্টা করুন এবং তারপরে নিয়মিত সরঞ্জাম ব্যবহার করে সম্পাদনা করুন৷

// একটি টেক্সট ফাইল খুলুন
$f = fopen("text.txt", "w");
// পাঠ্যের একটি স্ট্রিং লিখুন
fwrite($f, "হ্যালো! শুভ দিন!");
// পাঠ্য ফাইল বন্ধ করুন
fclose($f);

এই উদাহরণে, text.txt হল নথির নাম। আপনি এটিকে ভিন্নভাবে কল করতে পারেন: "হ্যালো! শুভ দিন! - পাঠ্যের একটি উদাহরণ, এটি সম্পূর্ণ নির্বিচারে হতে পারে। সমস্ত পরিবর্তন স্বয়ংক্রিয়ভাবে খোলা ফাইলে সংরক্ষিত হয়।

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