PHP में CSV के साथ कार्य: पूर्ण मार्गदर्शिका
CSV (कॉमा-सेपरेटेड वैल्यूज़) — सारणीबद्ध डेटा के आदान-प्रदान के लिए सबसे लोकप्रिय प्रारूपों में से एक है। PHP में CSV के साथ कार्य मूल रूप से लागू किया गया है, बिना अतिरिक्त लाइब्रेरी स्थापित किए। इस लेख में हम सभी पहलुओं को कवर करेंगे: बुनियादी पढ़ने से लेकर बड़ी फ़ाइलों के उन्नत प्रसंस्करण तक।
CSV के साथ कार्य करने के लिए मुख्य फ़ंक्शन
PHP CSV के साथ कार्य करने के लिए दो प्रमुख फ़ंक्शन प्रदान करता है:
fgetcsv()— फ़ाइल से CSV पंक्ति पढ़नाfputcsv()— CSV प्रारूप में पंक्ति लिखना
अतिरिक्त रूप से, फ़ाइलों के साथ कार्य करने के लिए मानक फ़ंक्शन का उपयोग किया जाता है: fopen(), fclose(), file()।
PHP में CSV फ़ाइल पढ़ना
CSV पढ़ने का सबसे सरल तरीका fgetcsv() के साथ while लूप का उपयोग करना है:
<?php$filename = 'data.csv';
if (($handle = fopen($filename, 'r')) !== false) { // हेडर पढ़ें (पहली पंक्ति) $headers = fgetcsv($handle, 1000, ','); // शेष पंक्तियाँ पढ़ें while (($row = fgetcsv($handle, 1000, ',')) !== false) { echo "नाम: " . $row[0] . ", ईमेल: " . $row[1] . "<br>"; } fclose($handle);}?>fgetcsv() के पैरामीटर:
handle— फ़ाइल डिस्क्रिप्टरlength— पंक्ति की अधिकतम लंबाई (डिफ़ॉल्ट 0 — कोई सीमा नहीं)separator— फ़ील्ड विभाजक (डिफ़ॉल्ट अल्पविराम)enclosure— उद्धरण चिह्न (डिफ़ॉल्ट दोहरे उद्धरण)escape— एस्केप वर्ण (डिफ़ॉल्ट बैकस्लैश)
कस्टम विभाजकों के साथ CSV पढ़ना
सभी CSV अल्पविराम का उपयोग नहीं करते। अक्सर अर्धविराम (;) या टैब का उपयोग होता है:
<?php$handle = fopen('data.tsv', 'r');while (($row = fgetcsv($handle, 1000, "\\t")) !== false) { print_r($row);}fclose($handle);?>CSV में डेटा लिखना
fputcsv() फ़ंक्शन स्वचालित रूप से एस्केपिंग और उद्धरणों को संभालता है:
<?php$data = [ ['इवान', 'ivan@example.com', 25], ['मारिया', 'maria@example.com', 30], ['पीटर', 'petr@example.com', 28]];
$handle = fopen('users.csv', 'w');
// हेडर लिखेंfputcsv($handle, ['नाम', 'ईमेल', 'आयु']);
// डेटा लिखेंforeach ($data as $row) { fputcsv($handle, $row);}
fclose($handle);echo "CSV फ़ाइल सफलतापूर्वक बनाई गई!";?>fputcsv() के पैरामीटर:
handle— फ़ाइल डिस्क्रिप्टरfields— लिखने के लिए फ़ील्ड की सरणीseparator— फ़ील्ड विभाजकenclosure— उद्धरण चिह्नescape— एस्केप वर्ण
डाउनलोड के लिए CSV में डेटा निर्यात
अक्सर CSV उत्पन्न करना और उपयोगकर्ता को डाउनलोड के लिए देना आवश्यक होता है:
<?php$data = [ ['उत्पाद', 'मूल्य', 'मात्रा'], ['लैपटॉप', 75000, 10], ['माउस', 1500, 50], ['कीबोर्ड', 3500, 30]];
header('Content-Type: text/csv; charset=utf-8');header('Content-Disposition: attachment; filename="products.csv"');
$output = fopen('php://output', 'w');// Excel में सिरिलिक वर्णों के सही प्रदर्शन के लिए BOM जोड़ेंfprintf($output, chr(0xEF).chr(0xBB).chr(0xBF));
foreach ($data as $row) { fputcsv($output, $row);}
fclose($output);exit;?>बड़ी CSV फ़ाइलों का प्रसंस्करण
बड़ी फ़ाइलों (सैकड़ों हज़ार पंक्तियाँ) के साथ कार्य करते समय, पूरी फ़ाइल को मेमोरी में लोड करने से बचना महत्वपूर्ण है। स्ट्रीम प्रसंस्करण का उपयोग करें:
<?phpfunction processLargeCSV($filename, $batchSize = 1000) { $handle = fopen($filename,