وبلاگ

دانلود خودکار فایل CSV در PHP


رقیه اباذری رقیه اباذری

 

دانلود خودکار یک فایل CSV با استفاده از PHP، یک ساختار خاص از کد را ایجاد می‌کند که با فایل‌هایی که عموما ایجاد می‌کنیم تفاوت دارند. برای دانلود فایل‌های CSV، باید از فانکشن ()header و پارامتر php://output استفاده شود. این آموزش از باورژن به سه قسمت تقسیم شده است تا اهمیت هر قطعه کد را نشان دهیم.

Automatically downloading a CSV file with PHP takes a particularly different structure of code that would be present in the general creation of files

ست کردن فانکشن header

ست کردن هدر ریکوئست‌های HTTP هنگام دانلود اتوماتیک فایل‌ها، از اهمیت بالایی برخوردار است. اینکار به وسیله آپشن‌های خاص به مرورگر اطلاع می‌دهد که ریکوئستی متفاوت از ریکوئست استاندارد HTTP است. فانکشن ()header را فراخوانی کرده و از پارامترهای زیر در آن استفاده کنید.
یکی از آپشن‌های بسیار مهم در خط دوم کد، آپشن filename است. اینجاست که می خواهید فایلی را تولید و دانلود کنید.

// Set the content type 
header('Content-type: application/csv');
// Set the file name option to a filename of your choice.
header('Content-Disposition: attachment; filename=myCSV.csv');
// Set the encoding
header("Content-Transfer-Encoding: UTF-8");

پر کردن فایل CSV

در مرحله بعد، به جای نوشتن نام فایل واقعی، پارامتر ()fopen به ما امکان دسترسی به بافر خروجی PHP را می‌دهد.

$f = fopen('php://output', 'a'); // Configure fopen to write to the output buffer

نوشتن داده و شروع دانلود

با دو بخش آخر که در کد ما اجرا شده است، می‌توانیم برخی از داده‌های ساختگی را برای نوشتن اضافه کنیم. در آخر، فایل مجازی را می‌بندیم و متعاقباً دانلود شروع می‌شود.

// Write to the csv
fputcsv($f, ["cell1", "cell2", "cell3"]);

// Close the file
fclose($f);
// ... download will start

ترکیب تمامی کدها با هم

حال اگر همه سینتکس‌ها را در کنار هم قرار دهیم، باید قطعه کد زیر را داشته باشیم.

// Set the content type
header('Content-type: application/csv');
// Set the file name option to a filename of your choice.
header('Content-Disposition: attachment; filename=myCSV.csv');
// Set the encoding
header("Content-Transfer-Encoding: UTF-8");

$f = fopen('php://output', 'a'); // Configure fopen to write to the output buffer

// Write to the csv
fputcsv($f, ["cell1", "cell2", "cell3"]);

// Close the file
fclose($f);
// ... download will start

 


برچسب‌ها: php

رقیه اباذری
رقیه اباذری

مطالب مرتبط


PHP-ML: لایبرری یادگیری ماشین برای PHP

یادگیری ماشین یکی از جذاب‌ترین مباحث در زیرشاخه‌های هوش مصنوعی است که افراد زیادی برای یادگیری آن به پایتون روی می‌آورند. لایبرری PHP-ML، کتابخانه‌ای برای کار در حوزه یادگیری ماشین با استفاده از زبان پی‌اچ‌پی است.

Datatables: لایبرری پی‌اچ‌پی برای هندل پردازش‌های سمت سرور دیتاتیبل‌ها

لایبرری datatables برای هندل کردن پردازش‌های سمت سرور مربوط به دیتاتیبل‌ها کاربرد دارد. دیتاتیبل‌ها جداولی داینامیک هستند که محتوای آن‌ها به کمک اجکس رفرش می‌شود. استفاده از دیتاتیبل‌ها، روشی سریع و ساده برای پردازش محتوای جدول‌ها است.

اصول شی‌گرایی در PHP

برای یادگیری اصول شی‌گرایی باید برنامه‌نویسی رویه‌گرا به خوبی آموخته باشیم. شی‌گرایی نقطه مقابل برنامه نویسی رویه‌گرا است. در شی‌گرایی با مفاهیمی چون کلاس‌ها، اشیا و پراپرتی‌ها سروکار داریم. کلاس مانند یک نقشه است که قاعده کلی را شامل می‌شوند، شی نیز یک نمونه است که از روی نقشه یا راهنمای ما که کلاس است ساخته شده است.