ساخت فایل در php
برای ساخت فایل در php دو روش اصلی وجود دارد. در روش اول و عمومی از دستور fopen استفاده میکنیم و در روش دوم که برای فایلهای کمحجم قابل استفاده است، از دستور file_put_contents کمک میگیریم.
روش اول: با استفاده از دستور fopen
تابع fopen برای باز کردن فایلها استفاده میشود. این دستور میتواند برای خواندن فایلی که قبلا ساخته شده یا برای نوشتن فایلی جدید یا برای اضافه کردن محتوا به فایل دلخواه مورد استفاده قرار گیرد.
دستور fopen چهار پارامتر قبول میکند که اغلب از دو پارامتر ابتدایی استفاده میکنیم. پارامتر اول نام فایل و پارامتر دوم نوع باز شدن فایل را مشخص میکند:
1 |
resource fopen ( string $filename , string $mode ) |
برای مثال با استفاده از دستور زیر یک فایل جدید با نام rokaweb.txt روی هاست ایجاد میشود:
1 |
$file = fopen( 'rokaweb.txt', 'w' ); |
همان طور که گفتیم، پارامتر دوم تعیین میکند که فایل به چه صورت باز شود. در نمونه کد بالا از پارامتر «w» به معنی write یا ایجاد فایل جدید استفاده کردیم. دقت کنید که اگر فایل قبلا روی هاست موجود باشد، محتوای فایل خالی میشود.
برای مشاهده سایر مقادیر قابل قبول برای mode میتوانید راهنمای دستور fopen را ملاحظه بفرمایید.
درج محتوا در فایل
اکنون که فایل ما ایجاد شد، لازم است تا محتوای دلخواه را در فایل درج کنیم و سپس آن را ببندیم. انجام این کار به صورت زیر است:
1 2 3 4 |
$file = fopen( 'rokaweb.txt', 'w' ); fwrite( $file, 'ROKA' ); fwrite( $file, 'WEB' ); fclose( $file ); |
در قطعه کد بالا، فایل را باز کردیم، دو عبارت ROKA و WEB را پشتسرهم در آن ذخیره کردیم و سپس فایل را بستیم. هرچند با اتمام اجرای اسکریپت php فایل به صورت خودکار بسته میشود ولی بهتر است همیشه فایل را با دستور fclose ببندیم.
روش دوم: با استفاده از دستور file_put_contents
این دستور محتوای فایل را به صورت یکجا داخل آن قرار میدهد. با توجه به محدودیتهای حافظه در اجرای اسکریپتهای php، استفاده از این دستور هنگام ایجاد فایلهای حجیم قابل استفاده نیست و ممکن است با خطا مواجه شود.
1 |
file_put_contents( 'rokaweb.txt', 'ROKAWEB' ); |
اجرای دستور بالا کار سه دستور fopen، fwrite و fclose را یکجا و یکباره به انجام میرساند.
نکات فنی
هر دو دستور fopen و file_put_contents علاوه بر قابلیت باز کردن فایلها از روی هاست، بسته به شرایط هاست، ممکن است بتوانند در محلهای مختلف فایلها را بخوانند و بنویسند. مثلا ممکن است بتوانید از پروتکل http( محتویات یک سایت دیگر ) را بخوانید.
دقت کنید که ایجاد فایلهایی با محتوای حساس روی هاست ممکن است مشکلات امنیتی ایجاد کند. هر فایل که در شاخههای عمومی سایت ایجاد شود، میتواند توسط بازدیدکنندگان سایت دانلود یا اجرا شود. اعتماد به مخفی بودن نام فایل برای امنیت این گونه فایلها کافی نیست و دسترسی به این فایلها باید به طور کامل بسته شود.
آخرین نکته که در هنگام ذخیره و بازیابی فایلها میبایست به آن توجه شود این است که فایل محل مناسبی برای ذخیره و بازیابی اطلاعات روزمره سایت نیست. به دلیل مراجعات مکرر کاربران به سایت ممکن است سرعت دسترسی به فایل به مقدار قابل توجهی کاهش پیدا کند یا به دلیل خطاهای پیشبینی نشده ممکن است کل اطلاعات از بین برود.
پایگاه داده بهترین محل برای نگهداری اطلاعاتی است که میبایست به صورت مستمر خوانده و نوشته شوند.
دمتون گرم. تامام