PHP में CSV के साथ कार्य: डेटा पढ़ना, लिखना और प्रसंस्करण
CSV (Comma-Separated Values) प्रारूप सारणीबद्ध डेटा के आदान-प्रदान के सबसे लोकप्रिय तरीकों में से एक बना हुआ है। PHP इस प्रारूप के साथ काम करने के लिए अंतर्निहित फ़ंक्शन प्रदान करता है, जो इसे डेटा आयात/निर्यात, CRM, लेखा प्रणालियों के साथ एकीकरण और रिपोर्ट तैयार करने के लिए एक आदर्श विकल्प बनाता है। इस लेख में, हम CSV के साथ कार्य के पूर्ण चक्र को कवर करेंगे: फ़ाइल खोलने से लेकर एस्केपिंग और एन्कोडिंग के जटिल मामलों को संभालने तक।
CSV के लिए PHP के मुख्य फ़ंक्शन
PHP के दो मुख्य फ़ंक्शन हैं: पढ़ने के लिए fgetcsv() और लिखने के लिए fputcsv()। ये स्वचालित रूप से विभाजक, उद्धरण और एस्केपिंग को संभालते हैं।
CSV फ़ाइल को पंक्ति दर पंक्ति पढ़ना
fgetcsv() का उपयोग करके CSV पढ़ने का मूल उदाहरण:
<?php$filename = 'data.csv';
if (($handle = fopen($filename, 'r')) !== false) { // हेडर पढ़ें (पहली पंक्ति) $headers = fgetcsv($handle, 1000, ','); if ($headers !== false) { echo "हेडर: " . implode(', ', $headers) . "<br>"; // डेटा को पंक्ति दर पंक्ति पढ़ें while (($row = fgetcsv($handle, 1000, ',')) !== false) { echo "पंक्ति: " . implode(' | ', $row) . "<br>"; } } fclose($handle);}?>fgetcsv() के पैरामीटर:
handle— फ़ाइल डिस्क्रिप्टर (fopen का परिणाम)length— पंक्ति की अधिकतम लंबाई (स्वचालित पहचान के लिए 0 अनुशंसित)separator— फ़ील्ड विभाजक (डिफ़ॉल्ट रूप से अल्पविराम)enclosure— उद्धरण चिह्न (डिफ़ॉल्ट रूप से दोहरे उद्धरण)escape— एस्केपिंग वर्ण (डिफ़ॉल्ट रूप से बैकस्लैश)
CSV में डेटा लिखना
fputcsv() फ़ंक्शन स्वचालित रूप से सही एस्केपिंग के साथ पंक्ति को प्रारूपित करता है:
<?php$data = [ ['ID', 'नाम', 'ईमेल', 'पंजीकरण तिथि'], [1, 'इवान पेत्रोव', 'ivan@example.com', '2024-01-15'], [2, 'मारिया सिदोरोवा', 'maria@example.com', '2024-02-20'], [3, 'एलेक्सी "प्रोफेसर" इवानोव', 'alex@example.com', '2024-03-10']];
$filename = 'users.csv';
if (($handle = fopen($filename, 'w')) !== false) { // Excel में सिरिलिक के सही प्रदर्शन के लिए BOM लिखें fwrite($handle, "\\xEF\\xBB\\xBF"); foreach ($data as $row) { fputcsv($handle, $row, ';'); // Excel के लिए अर्धविराम का उपयोग करें } fclose($handle); echo "फ़ाइल $filename सफलतापूर्वक बनाई गई!";}?>बड़ी CSV फ़ाइलों का प्रसंस्करण
बड़ी फ़ाइलों (सैकड़ों हजारों पंक्तियों) के साथ काम करते समय, पूरी फ़ाइल को मेमोरी में लोड न करना महत्वपूर्ण है। स्ट्रीम प्रोसेसिंग का उपयोग करें:
<?phpfunction processLargeCSV($filename, callable $callback) { $handle = fopen($filename, 'r'); if ($handle === false) { throw new Exception("फ़ाइल खोलने में विफल: $filename"); } $headers = fgetcsv($handle, 0, ','); if ($headers === false) { fclose($handle); throw new Exception("खाली फ़ाइल या हेडर पढ़ने में त्रुटि"); } $rowNumber = 1; while (($row = fgetcsv($handle, 0, ',')) !== false) { if (count($row) !== count($headers)) { // गलत फ़ील्ड संख्या वाली पंक्तियों को छोड़ें continue; } // हेडर को डेटा के साथ संयोजित करें $assocRow = array_combine($headers, $row); call_user_func($callback, $assocRow, $rowNumber); $rowNumber++; } fclose($handle);}
// उपयोग:processLargeCSV('bigdata.csv', function($row, $number) { echo "पंक्ति #$number: {$row['email']} - {$row['name']}<br>";});?>विभिन्न विभाजकों और एन्कोडिंग के साथ कार्य
अक्सर CSV फा
पुस्तकालय में भी
Symfony/Mailer PHP: पूर्ण गाइड उदाहरणों के साथ
PHP में Excel के साथ काम करना: PhpSpreadsheet, PhpOffice लाइब्रेरीज़ और XLSX जनरेशन
Swift (iOS/macOS) के लिए HTTP-क्लाइंट: 2024 की शीर्ष लाइब्रेरी
C++ अनुप्रयोगों की निगरानी: मेट्रिक्स संग्रह के लिए metrics लाइब्रेरी