PHP fopen() ফাংশন
পরিভাষা ও ব্যবহার
fopen() ফাংশন ফাইল বা URL-কে উদ্ধার করে।
যদি উদ্ধার ব্যর্থ হয়,তবে এই ফাংশন FALSE ফিরিয়ে দেবে。
সিন্ট্যাক্স
fopen(নাম,mode,include_path,কনটেক্স্ট)
পারামিটার | বর্ণনা |
---|---|
নাম | আবশ্যকীয়।উদ্ধার করতে হলে ফাইল বা URL-কে নির্ধারণ করুন。 |
mode | আবশ্যকীয়।ফাইল/স্ট্রিমের প্রয়োজনীয় প্রবেশপথকে নির্ধারণ করুন।সম্ভাব্য মানগুলি নিচের টেবিলে দেখা যাচ্ছে。 |
include_path | স্বেচ্ছাসূচিত।যদি include_path-এর মধ্যেও ফাইল অনুসন্ধান করতে হয়,তবে এই পারামিটারকে 1 বা TRUE হিসাবে সংজ্ঞায়িত করতে হবে。 |
কনটেক্স্ট | স্বেচ্ছাসূচিত।ফাইল হ্যান্ডলের পরিবেশ নির্ধারণ করুন।Context হল প্রবাহের আচরণ পরিবর্তন করার একটি সেট অপশন। |
mode পারামিটারের সম্ভাব্য মান
mode | বৃত্তান্ত |
---|---|
"r" | শুধুমাত্র পড়তে উদ্ধার করুন, ফাইল ইন্ডেক্সকে ফাইল হেডে নিয়ে যান。 |
"r+" | পড়াও লিখতে উদ্ধার করুন, ফাইল ইন্ডেক্সকে ফাইল হেডে নিয়ে যান。 |
"w" | লিখতে উদ্ধার করুন, ফাইল ইন্ডেক্সকে ফাইল হেডে নিয়ে যান এবং ফাইল মাপ শূন্য করা হবে।যদি ফাইল পূর্ববর্তীভাবে সংস্থান না হয়,তবে তা তৈরি করা হবে。 |
"w+" | পড়াও লিখতে উদ্ধার করুন, ফাইল ইন্ডেক্সকে ফাইল হেডে নিয়ে যান এবং ফাইল মাপ শূন্য করা হবে।যদি ফাইল পূর্ববর্তীভাবে সংস্থান না হয়,তবে তা তৈরি করা হবে。 |
"a" | লিখতে উদ্ধার করুন, ফাইল ইন্ডেক্সকে ফাইল শেষে নিয়ে যান।যদি ফাইল পূর্ববর্তীভাবে সংস্থান না হয়,তবে তা তৈরি করা হবে。 |
"a+" | পড়াও লিখতে উদ্ধার করুন, ফাইল ইন্ডেক্সকে ফাইল শেষে নিয়ে যান।যদি ফাইল পূর্ববর্তীভাবে সংস্থান না হয়,তবে তা তৈরি করা হবে。 |
"x" |
ফাইলটি তৈরি করা এবং লিখতে উদ্ধার করুন, ফাইল ইন্ডেক্সকে ফাইল হেডে নিয়ে যান।যদি ফাইল পূর্ববর্তীভাবে সংস্থান হয়,তবে fopen() কল ব্যর্থ হবে এবং FALSE ফিরিয়ে দেবে,এবং E_WARNING স্তরের একটি ত্রুটি সংকেত তৈরি করবে।যদি ফাইল পূর্ববর্তীভাবে সংস্থান না হয়,তবে তা তৈরি করা হবে。 এটি নিচের স্তরের open(2) সিস্টেম কলের O_EXCL|O_CREAT ট্যাগকে সমতুল করে। এই অপশনটি PHP 4.3.2 এবং পরবর্তী সংস্করণগুলির দ্বারা সমর্থিত, এটি শুধুমাত্র স্থানীয় ফাইলগুলির জন্য ব্যবহার করা যেতে পারে。 |
"x+" |
তৈরি করা এবং রিড-ও-ক্রিয়েট মোডে খোলা, ফাইল পাইন্টারকে ফাইলের মাথায় পৌঁছায়।যদি ফাইল পূর্বে স্তরে রয়েছে, fopen() কের আহ্বান ব্যর্থ হবে এবং FALSE রিটার্ন করবে, এবং E_WARNING স্তরের একটি ত্রুটি সংবাদ জারি করবে।যদি ফাইল পূর্বে নেই, তবে তা তৈরি করা হবে。 এটি নিচের স্তরের open(2) সিস্টেম কলের O_EXCL|O_CREAT ট্যাগকে সমতুল করে। এই অপশনটি PHP 4.3.2 এবং পরবর্তী সংস্করণগুলির দ্বারা সমর্থিত, এটি শুধুমাত্র স্থানীয় ফাইলগুলির জন্য ব্যবহার করা যেতে পারে。 |
বৃত্তান্ত
fopen() করবে নাম স্পেসিফাইক নামক সংসাধনকে একটি স্ট্রিমে বাঁধা হয় নাম হল "স্কিমা://..." এর ফরম্যাট, তবে একটি URL হিসাবে ব্যবহার করা হবে, PHP একটি প্রোটোকল প্রসেসর (যা একইভাবে এনক্লোসার প্রোটোকল হিসাবে পরিচিত) খোঁজবে এবং এই মোডকে প্রসেস করবে।যদি এই প্রোটোকলটি এখনও এনক্লোসার প্রোটোকল হিসাবে নিবন্ধিত হয়নি, PHP একটি সংবাদ জারি করবে যাতে স্ক্রিপ্টের ভেতরে সম্ভাব্য সমস্যা খুঁজে পাওয়া যায় এবং নাম একটি সাধারণ ফাইলনাম হিসাবে কাজ করতে থাকে。
যদি PHP মনে করে নাম একটি স্থানীয় ফাইল নির্দিষ্ট করা হয়, তবে সেই ফাইলে একটি স্ট্রিম খোলা চেষ্টা করবে।ফাইলটি PHP-এর প্রতি পরিবেশ প্রদান করা উচিত, তাই ফাইল প্রবেশ অধিকারকে নিশ্চিত করতে হবে।যদি নিরাপত্তা মোড বা open_basedir সক্রিয় হয়, তবে আরও সীমিতকরণ আপ্লাই করা হবে。
যদি PHP মনে করে নাম স্পেসিফাইক একটি নিবন্ধিত প্রোটোকল, যা একটি নেটওয়ার্ক URL-এর রূপে নিবন্ধিত হয়, PHP অনুমোদন করবে এবং allow_url_fopen-কে সক্রিয় করবে।যদি বন্ধ করা হয়, PHP একটি সতর্কতা জারি করবে, এবং fopen() কের আহ্বান ব্যর্থ হবে。
প্রতি কনটেক্স্ট এর সমর্থনকে PHP 5.0.0-এ যোগ করা হয়েছে。
টুইপস ও মনোতাজ্জ্ঞা
মন্তব্য:ভিন্ন অপারেটিং সিস্টেম পরিবারগুলির ভিন্ন লাইন সিম্বল অভ্যাস রয়েছে।একটি টেক্সট ফাইল লিখতে এবং একটি নতুন লাইন যোগ করতে চাইলে, সংযুক্তকরণকারী অপারেটিং সিস্টেমের লাইন সিম্বল ব্যবহার করতে হবে।ইউনিক্স-ভিত্তিক সিস্টেমগুলি \n-কে লাইন সিম্বল হিসাবে ব্যবহার করে, উইন্ডোস-ভিত্তিক সিস্টেমগুলি \r\n-কে লাইন সিম্বল হিসাবে ব্যবহার করে, এবং ম্যাকিন্টোশ-ভিত্তিক সিস্টেমগুলি \r-কে লাইন সিম্বল হিসাবে ব্যবহার করে。 যদি ফাইল লিখতে ভুল লাইন সিম্বল ব্যবহার করা হয়, তবে অন্যান্য অ্যাপ্লিকেশন এই ফাইলগুলি খোলার সময় অস্বাভাবিকভাবে কাজ করতে পারে。
উইন্ডোস একটি টেক্সট কনভারশন ট্যাগ ("t") প্রদান করে, যা একইভাবে \n-কে \r\n-এ কনভার্ট করতে পারে।এর সাথে একইভাবে, "b"-এর মাধ্যমে দ্বিস্তরীয় মোডকে বাধ্যতামূলক করা যেতে পারে, যাতে ডাটা কনভার্ট করা না হয়।এই ট্যাগগুলি ব্যবহার করতে, বা শুধুমাত্র "b" বা "t"-কে mode পারামিটারের শেষ অক্ষর হিসাবে ব্যবহার করতে হবে。
ডিফল্ট ট্রান্সফর্মেশন মোডটি SAPI এবং ব্যবহৃত PHP সংস্করণের উপর নির্ভর করে, তাই পুনর্বাসন সহজ করার জন্য, আপনারা সবসময় সঠিক মার্কার নির্দিষ্ট করুন। শুধুমাত্র টেক্সট ফাইল চালানোর সময় এবং স্ক্রিপ্টে \n ব্যবহার করা হয়, এবং এইসব ফাইলগুলোকে অন্য অ্যাপলিকেশন, যেমন Notepad দ্বারা পড়া হবে, তবে mode-এ "t" ব্যবহার করুন। অন্যান্য সমস্ত ক্ষেত্রে "b" ব্যবহার করুন।
দ্বীপব্রীত্য ফাইল পরিচালনা করার সময়, "b" মার্কার না দিলে, কিছু অজ্ঞাত সমস্যা সম্মুখীন হতে পারে, যেমন ভুল হয়ে গেছে চিত্র ফাইল এবং \r\n চার্জের বিষয়ে অজ্ঞাত সমস্যা。
মন্তব্য:পুনর্বাসন ব্যবহারের জন্য, আপনারা fopen() ফাংশন ব্যবহার করার সময় সবসময় "b" মার্কার ব্যবহার করুন。
মন্তব্য:আবারো, পুনর্বাসন ব্যবহারের জন্য, আপনাকে আমরা শক্ত পরামর্শ দিই যে আপনারা যেসব কোডটি "t" মোডের উপর নির্ভর করে, সেগুলোকে সঠিক লাইন এন্ডিং ব্যবহার করে "b" মোডে রচনা করুন。
উদাহরণ
<?php $file = fopen("test.txt","r"); $file = fopen("/home/test/test.txt","r"); $file = fopen("/home/test/test.gif","wb"); $file = fopen("http://www.example.com/","r"); $file = fopen("ftp://user:password@example.com/test.txt","w"); ?>