العمل مع CSV في PHP: مكتبة SplFileObject والدوال المضمنة

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ما هو CSV ولماذا نحتاج للعمل معه في PHP؟

CSV (Comma-Separated Values) هو تنسيق لتخزين البيانات الجدولية، حيث يتم فصل الأسطر بفواصل الأسطر، والأعمدة بفواصل أو محددات أخرى. في PHP، العمل مع CSV ضروري لاستيراد/تصدير البيانات من Excel و Google Sheets وأنظمة CRM، وكذلك لمعالجة السجلات وتبادل البيانات بين الخدمات. توفر المكتبة القياسية لـ PHP أدوات قوية لقراءة وكتابة CSV دون الحاجة إلى تثبيت وحدات إضافية.

الدوال الأساسية للعمل مع CSV

في PHP دوال مضمنة: fgetcsv() — لقراءة سطر CSV من ملف، fputcsv() — لكتابة مصفوفة بتنسيق CSV، بالإضافة إلى الفئة SplFileObject التي تبسط التكرار عبر ملفات CSV. للعمل مع الذاكرة، يمكن استخدام str_getcsv() لتحليل سلسلة نصية بدون ملف.

التثبيت

لا يلزم تثبيت إضافي، حيث أن الدوال جزء من نواة PHP. للعمل مع CSV، يكفي تفعيل دعم عمليات الملفات (عادة ما يكون مفعلاً افتراضياً).

الدوال الأساسية واستخداماتها

  • fgetcsv($handle, $length, $delimiter, $enclosure, $escape) — تقرأ سطراً من ملف مفتوح وتعيد مصفوفة من الحقول.
  • fputcsv($handle, $fields, $delimiter, $enclosure, $escape) — تكتب مصفوفة كسطر CSV في ملف.
  • str_getcsv($input, $delimiter, $enclosure, $escape) — تحلل سلسلة CSV بدون ملف.
  • SplFileObject::fgetcsv() — طريقة لقراءة CSV بأسلوب كائني التوجه.

مثال كود PHP

<?php// قراءة ملف CSV$filename = 'data.csv';if (($handle = fopen($filename, 'r')) !== false) {    while (($data = fgetcsv($handle, 1000, ',')) !== false) {        echo 'الاسم: ' . $data[0] . ', البريد الإلكتروني: ' . $data[1] . '<br>';    }    fclose($handle);}

// الكتابة إلى CSV$list = [ ['إيفان', 'ivan@example.com'], ['ماريا', 'maria@example.com']];$handle = fopen('output.csv', 'w');foreach ($list as $fields) { fputcsv($handle, $fields);}fclose($handle);

// استخدام SplFileObject$file = new SplFileObject('data.csv');$file->setFlags(SplFileObject::READ_CSV);foreach ($file as $row) { print_r($row);}?>

متى تستخدم

المكتبة مناسبة لـ: استيراد المنتجات من Excel إلى متجر إلكتروني، تصدير التقارير، معالجة جهات الاتصال من CRM، تحميل البيانات من Google Sheets عبر التصدير إلى CSV، وكذلك لترحيل البيانات بين الأنظمة. للملفات الكبيرة، يُوصى باستخدام مكررات SplFileObject أو القراءة سطراً بسطر لتجنب تجاوز سعة الذاكرة.

الخلاصة

الأدوات المضمنة في PHP للعمل مع CSV هي حل موثوق وسريع لمعظم المهام. لا تتطلب تثبيت مكتبات إضافية، وتدعم مختلف المحددات والهروب، وتتكامل بسهولة مع قواعد البيانات ونماذج الويب. إذا كنت بحاجة لمعالجة CSV في PHP، ابدأ بـ fgetcsv() و fputcsv() — فهما المعيار الفعلي.

توصيات