PHP fopen() فونکشن
تعلیم اور استعمال
fopen() فونکشن فائل یا URL کو کھولتا ہے۔
اگر کھولنا کامیاب نہیں ہو تو اس فونکشن FALSE برتائے گا۔
قواعد
fopen(filename,mode,include_path,کوئنٹیکسٹ)
پارامتر | وصف |
---|---|
filename | ضروری۔ کھولنا ہو رہا فائل یا URL کو تعین کرنا۔ |
mode | ضروری۔ فائل یا اسٹریم تک طلب کئے جانے والی نوعیت کو تعین کرنا۔ ممکنہ اقدار درج جدول میں دیئے گئے ہیں۔ |
include_path | اختیاری۔ اگر اس کے ساتھ فائل کو include_path میں تلاش کرنا بھی چاہیے تو اس پارامتر کو 1 یا TRUE رکھنا سکتے ہیں۔ |
کوئنٹیکسٹ | اختیاری۔ فائل ہینڈل کا ماحول تعین کرنا۔ کانٹیکس یہ گزشتہ کی رفتار کو بدلنے کا ایک سیٹ آپشن ہیں۔ |
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() 将 filename 指定的名字资源绑定到一个流上。如果 filename 是 "scheme://..." 的格式,则被当成一个 URL,PHP 将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP 将发出一条消息来帮助检查脚本中潜在的问题并将 filename 当成一个普通的文件名继续执行下去。
如果 PHP 认为 filename 指定的是一个本地文件,将尝试在该文件上打开一个流。该文件必须是 PHP 可以访问的,因此需要确认文件访问权限允许该访问。如果激活了安全模式或者 open_basedir 则会应用进一步的限制。
如果 PHP 认为 filename 指定的是一个已注册的协议,而该协议被注册为一个网络 URL,PHP 将检查并确认 allow_url_fopen 已被激活。如果关闭了,PHP 将发出一个警告,而 fopen 的调用则失败。
کا کوئنٹیکسٹ کا استعمال PHP 5.0.0 میں شروع کیا گیا تھا。
خبر و تذکرات
نکته:مختلف آپریٹنگ سسٹم خاندانوں میں مختلف سطر خاتمہ عادت ہیں۔اگر کسی لفظ فائل میں لکھنا چاہیئے اور نئی سطر میں لکھنا چاہیئے تو اس کے لئے اس آپریٹنگ سسٹم کا سطر خاتمہ نمبر استعمال کیا جانا چاہیئے جو کسی آپریٹنگ سسٹم کا ہوگا، جو Unix پر مبنی ہو تو اس میں استعمال کیا جاتا ہے، ویندوز پر مبنی تو ، اور ماکینٹوش پر مبنی تو استعمال کیا جاتا ہے。 اگر فائل میں غلط سطر خاتمہ نمبر استعمال کیا گیا تو دوسرے ایپلی کیشنز کی طرف سے فائل کا اوپن کرنے کے دوران غیر معمولی کارکردگی دیکھی جاسکتی ہے。
ویندوز دکھائی دی اک لفظ تبدیل نشانگر ( ) موجود ہے جو کو میں شفاف طور پر تبدیل کردیگا۔اس کے مطابق "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"); ?>