اذهب إلى المحتوى
  • 0

تصدير بيانات مصفوفة إلى ملف csv بلغة php

Mahmoud Alrashidi

السؤال

لدي المصفوفة التالية تضم مجموعة من البيانات:

<?php

$results = array (  
     array(  
        "name"           => "Kamel Mahmoudi",  
        "email"      => "kamel@gmail.com",
        "age"      => 20, 
        "country"      => "Saudi Arabia", 
     ),
     array(  
        "name"           => "John Doe1",  
        "email"      => "john@foo.com",
        "age"      => 24, 
        "country"      => "Jordan", 
     ),
     array(  
        "name"           => "John Doe2",  
        "email"      => "john@bar.com",
        "age"      => 31, 
        "country"      => "Egypt", 
     )  
); 

أريد تصدير هذه البيانات لملف csv بحيث يتم تحميل الملف من طرف المُتصفح للمُستخدم.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يُمكنك ذلك عن طريق إستخدام الدالة header و الدالة fputcsv كما هو موضح أدناه:

<?php


$results = array (  
     array(  
        "name"           => "Kamel Mahmoudi",  
        "email"      => "kamel@gmail.com",
        "age"      => 20, 
        "country"      => "Saudi Arabia", 
     ),
     array(  
        "name"           => "John Doe1",  
        "email"      => "john@foo.com",
        "age"      => 24, 
        "country"      => "Jordan", 
     ),
     array(  
        "name"           => "John Doe2",  
        "email"      => "john@bar.com",
        "age"      => 31, 
        "country"      => "Egypt", 
     )  
);  
$filename = 'data.csv'; // تعريف مُتغير يحمل إسم الملف
/*
    إستخدام الدالة header 
    لجعل المُتصفح يقوم بتحميل ملف csv
*/
header("Content-type: text/csv"); // جعل الخرج ملف csv
header("Content-Disposition: attachment; filename=$filename");// الملف الذي سيتم تحميله سيأخذ الإسم data.csv

/*
    بما أننا نريد إرسال الملف للمُتصفح مُباشرة 
    بدون إنشائه نستخدم 
    stream: php://output
    بدل إنشاء ملف بهذا الشكل
    $output = fopen("filename.csv", "w");
    w: يعني أننا فتحنا الملف للكتابة

*/
$output = fopen("php://output", "w");

/*
     جلب كافة المفاتيح و جعل أول حرف من كل مفتاح كبير
     Name, Email, Age, Country
*/
$header = array_map('ucfirst', array_keys($results[0])); 

fputcsv($output, $header); // كتابة مُحتوى المُتغير header في أول صف   
foreach($results as $row) // الدوران على النتائج و كتابة كل صف داخل الملف  
{  
     fputcsv($output, $row);  
}       
fclose($output);// غلق الملف 

بعد تنفيذ السكربت سيقوم المتصفح بتنزيل ملف بالإسم data.csv يحمل كافة البيانات بهذا الشكل:

csv_data.thumb.JPG.cbf9b8625b093e0d95a6b766cc2bd797.JPG

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...