با عرض سلام و وقت به خیر خدمت کاربران سایت پی وی لرن و کاربرانی که دوره ی آموزش php 7 را دنبال می کنند.
در جلسه گذشته با نحوه مدیرت فایل ها در این زبان آشنا شدیم و آموختیم که مدیریت فایل ها یا File Handling به ما امکان باز کردن و ویرایش و اصلاح فایل ها را می دهد. در این جلسه با آموزش باز کردن، خواندن و بستن فایل در php 7 ، بیشتر با مدیریت فایل ها آشنا می شویم.
در این جلسه به شما می آموزیم که چگونه یک فایل را در سرور باز کرده، بخوانید و در نهایت ببندید.
بهترین روش برای باز کردن فایل ها در سرور استفاده از تابع ()fopen است.
این تابع حتی انتخاب های بیشتری نسبت به تابع ()readfile به شما می دهد.
ما از فایل متنی “webdictionary.txt” در طول مباحث استفاده خواهیم کرد:
1 2 3 4 5 6 7 | AJAX = Asynchronous JavaScript and XML CSS = Cascading Style Sheets HTML = Hyper Text Markup Language PHP = PHP Hypertext Preprocessor SQL = Structured Query Language SVG = Scalable Vector Graphics XML = EXtensible Markup Language |
اولین پارامتر ()fopen حاوی نام پرونده ای است که باید باز شود و پارامتر دوم مشخص می کند که کدام پرونده باید باز شود.
در مثال زیر اگر تابع ()fopen قادر به باز کردن فایل مشخص شده باشد، یک پیام تولید خواهد شد:
1 2 3 4 5 | <?php $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!"); echo fread($myfile,filesize("webdictionary.txt")); fclose($myfile); ?> |
تابع ()fread و ()fclose در ادامه توضیح داده شده اند:
حالت | توضیحات |
r | فقط فایل را برای خواندن باز می کند. اشاره گر فایل در ابتدای فایل شروع می شود. |
w | فقط یک فایل را برای نوشتن باز می کند. محتویات فایل را پاک می کند یا اگر فایل وجود ندارد، یک فایل جدید ایجاد می کند. اشاره گر فایل در ابتدای فایل شروع می شود. |
a | فقط یک فایل را برای نوشتن باز می کند. اطلاعات موجود در فایل را حفظ می کند. اشاره گر فایل در انتهای فایل شروع می شود. اگر فایل وجود ندارد، یک فایل جدید ایجاد می کند. |
x | یک فایل جدید برای نوشتن ایجاد می کند. اگر فایل در حال حاضر وجود داشته باشد، FALSE را بازگردانی می کند و یک خطا را دریافت می کند. |
+r | فایل را برای خواندن / نوشتن باز می کند. اشاره گر فایل در ابتدای فایل شروع می شود. |
+w | فایل را برای خواندن / نوشتن باز می کند. محتویات فایل را پاک می کند یا اگر فایل وجود ندارد، یک فایل جدید ایجاد می کند. اشاره گر فایل در ابتدای فایل شروع می شود. |
+a | فایل را برای خواندن / نوشتن باز می کند. اطلاعات موجود در فایل را حفظ می کند. اگر فایل وجود ندارد، یک فایل جدید ایجاد می کند. |
+x | یک فایل جدید برای نوشتن ایجاد می کند. اگر فایل در حال حاضر وجود داشته باشد، FALSE را بازگردانی می کند و یک خطا را دریافت می کند. |
تابع ()fread یک فایل باز را می خواند.
پارامتر اول ()fread حاوی نام فایل برای خواندن است و پارامتر دوم حداکثر تعداد بایت را برای خواندن تعیین می کند.
کد php زیر فایل “webdictionary.txt” را به پایان می رساند.
1 | fread($myfile,filesize("webdictionary.txt")); |
تابع ()fclose برای بستن یک فایل باز استفاده می شود.
می شود گفت این یک تمرین خوب برای بستن همه فایلهایی است که کارتان با آنها تمام شده است.
با استفاده از این تابع دیگر نیازی به اجرای یک فایل باز در سرور در نیست.
تابع ()fclose نام فایل (یا متغیری که filename را نگه می دارد ) می طلبد.
حالا ما قصد بستن مورد زیر را داریم.
1 2 3 4 5 | <?php $myfile = fopen("webdictionary.txt", "r"); // some code to be executed.... fclose($myfile); ?> |
برای خواندن تک خط ها می توان از تابع ()fgets استفاده کرد.
مثال زیر خط اول فایل “webdictionary.txt” را نمایش می دهد:
1 2 3 4 5 | <?php $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!"); echo fgets($myfile); fclose($myfile); ?> |
بعد از یک فراخوانی از تابع ()fclose، اشاره گر فایل به خط بعدی منتقل می شود.
اگر (end-of-file” (EOF” دریافت شده باشد تابع ()feof آن را بررسی می نماید.
این تابع برای حلقه کردن داده های اندازه های طول مجهول unknown length مفید است.
مثال زیر خط فایل “webdictionary.txt” را ، تا زمانی که پایان فایل رسیده باشد به صورت خط به خط می خواند:
1 2 3 4 5 6 7 8 | <?php $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!"); // Output one line until end-of-file while(!feof($myfile)) { echo fgets($myfile) . "<br>"; } fclose($myfile); ?> |
آموزش باز کردن، خواندن و بستن فایل در php 7 را با معرفی تابع ()fgetc به پایان می بریم.
از تابع ()fgetc برای خواندن تک کاراکترها در کی فایل استفاده می شود.
مثال زیر خط فایل “webdictionary.txt” را، تا زمانی که پایان فایل رسیده باشد به صورت تک کاراکتر می خواند:
1 2 3 4 5 6 7 8 | <?php $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!"); // Output one character until end-of-file while(!feof($myfile)) { echo fgetc($myfile); } fclose($myfile); ?> |
بعد از یک فراخوانی از تابع ()fgetc، اشاره گر فایل به خط بعدی منتقل می شود.
در این جلسه با با آموزش باز کردن، خواندن و بستن فایل در php 7 همراه شما بودیم.
جلسه بعد را به آموزش ساخت و نوشتن فایل در php 7 اختصاص داده ایم.
با پی وی لرن همراه باشید.