ساخت فایل اکسل csv با php
یکی از فایلهای نگهداری اطلاعات و دیتا در فضای کامپیوترها فایلهای اکسل هستند که با پسوندهای مختلفی شناخته میشوند. فایلهای csv یکی از رایجترین فایلهای اکسل است که برای نگهداری دادههای خام یا دادههای پردازش شده استفاه میشود. فایلهای csv در پردازش دادهها و هوش مصنوعی بسیار مرسوم هستند. در این آموزش کاربردی با نحوهی ساخت فایلهای اکسل یا csv با استفاده از زبان php آشنا میشوید. این آموزش به صورت اختصاصی تهیه شده است در صورت علاقه برای حمایت از ما مقالات ما را با دوستان خود به اشتراک بگذارید.
ساخت فایل اکسل csv با php
برای ساخت فایلهای csv به کمک زبان برنامه نویسی پی اچ پی به سادگی از قطعه کد زیر استفاده کنید:
<?php
$file_name_csv = "myscvfile.csv";
$fp = fopen($file_name_csv, 'w');
fprintf($fp, chr(0xEF).chr(0xBB).chr(0xBF));
fputcsv($fp, array("firstName", "lastName"));
fprintf($fp, chr(0xEF).chr(0xBB).chr(0xBF));
fputcsv($fp, array("Amir", "Shokri"));
fprintf($fp, chr(0xEF).chr(0xBB).chr(0xBF));
fputcsv($fp, array("John", "Due"));
fclose($fp);
?>
توضیحات;
- در قطعه کد بالا ابتدا یک نام برای فایل خود انتخاب کردهایم.
- در خط بعدی با توابع نوشتن فایل در پی اچ پی فایل مورد نظر را باز کردهایم. (در صورتی که فایلی که مدنظر دارید در مسیر مورد نظر موجود نباشد یک فایل جدید می سازد.)
- در خط بعدی با تابع printf در پی اچ پی محتوای زیر را داخل فایل قرار دادیم:
chr(0xEF).chr(0xBB).chr(0xBF)
شاید بپرسید خب محتوای بالا دقیقا چه کار میکند؟ این بخش در زبانهای که نیاز به encoding به صورت utf8 دارند بسیار کاربرد دارد. اگر شما بخواهید محتوای فارسی وارد این فایل اکسل کنید به قطعه کد فعلی بسیار نیاز دارید.
- در بخش بعدی با یک آرایه دادهی خط اول را که ما در اینجا به عنوان header دادهها در نظر گرفتهایم وارد فایل میکنیم.
- در خطوط بعدی هم همانند خطوط بالایی دو ردیف داده ی تست وارد کردهایم تا نحوهی کار این قطعه کد را یاد بگیرید.
- در آخر هم با تابع fclose در پی اچ پی به کار خود خاتمه دادیم.
- حالا یک فایل csv با کمک پی اچ پی ساختهاید و محتوای خود را درون آن وارد کردهاید.
شما همچنین میتوانید در این لینک با نحوهی ساخت فایل xml در پی اچ پی آشنا شوید.
اگر روشهای بهتری برای ساخت فایل csv با php میشناسید در بخش نظرات برای ما بنویسید. منتظر نظرات و پیشنهادات و سوالات شما در ارتباط با این آموزش کاربردی و ساده هستیم. نظرهای شما باعث دلگرمی ما میشود.



















چرا نام فایل را «myscvfile.csv» گذاشتهاید؛ اشتباه تایپی نیست و عمداً scv نیست؟
بله، درست میفرمایید. اسم فایل باید .csv باشه. توی نمونهی کد صرفاً یک اشتباه تایپی بوده و بهتره به جای myscvfile.csv همون mycsvfile.csv نوشته بشه.
هنگام نوشتن فایل روی سرورهای شلوغ، از flock یا فایل موقت و rename اتمیک برای جلوگیری از race استفاده میکنید؟
در محیطهای شلوغ حتماً پیشنهاد میشه از flock یا الگوی نوشتن در فایل موقت و بعد rename اتمیک استفاده کنید تا مشکل race condition پیش نیاد.
اگر لازم باشد جداکننده را برای Excel با locale متفاوت مشخص کنیم، از hint مثل “sep=;” در خط اول استفاده میکنید؟
بله، برای Excel در بعضی localeها (مثلاً جایی که جداکننده پیشفرض ; هست) میشه در خط اول فایل دستور sep=; قرار داد تا Excel جداکننده درست رو بشناسه.
اگر یکی از فیلدها خودش شامل کاما، کوتیشن یا خط جدید باشد، استراتژیتان برای enclosure و escape چیست؟
تابع fputcsv خودش بهصورت پیشفرض فیلدهایی که شامل کاما، کوتیشن یا خط جدید باشن رو داخل کوتیشن قرار میده و کوتیشنهای داخلی رو escape میکنه. در صورت نیاز هم میشه پارامترهای enclosure و escape character رو بهصورت دلخواه تغییر داد.
یعنی فرمت اکسل نمیشه اورد توی پایتون؟
این امکان وجود دارد ولی کار با فایلهای csv خیلی سادهتر انجام میشود.