PHP के लिए league/csv लाइब्रेरी का परिचय
league/csv लाइब्रेरी PHP में CSV (Comma-Separated Values) फ़ाइलों के साथ काम करने का एक शक्तिशाली और सुविधाजनक टूल है। यह डेवलपर्स को CSV डेटा को पढ़ने, लिखने, प्रोसेस करने और बदलने के लिए एक सरल लेकिन लचीला API प्रदान करती है। बिल्ट-इन PHP फ़ंक्शंस (fgetcsv, fputcsv) के विपरीत, league/csv ऑब्जेक्ट-ओरिएंटेड अप्रोच, विभिन्न CSV डायलेक्ट्स के लिए सपोर्ट, BOM (Byte Order Mark) के साथ काम, इटरेटर के ज़रिए बड़ी फ़ाइलों को हैंडल करना और कई अन्य उपयोगी सुविधाएँ प्रदान करती है।
यह लाइब्रेरी The League of Extraordinary Packages इकोसिस्टम का हिस्सा है और PHP में CSV के साथ काम करने का डी-फैक्टो स्टैंडर्ड मानी जाती है। इसे एक्टिवली सपोर्ट किया जाता है, इसकी शानदार डॉक्यूमेंटेशन है और यह टेस्ट से कवर है।
league/csv की ज़रूरत क्यों है?
- CSV काम को आसान बनाती है: मैन्युअल रूप से फ़ाइल पॉइंटर्स और लूप्स मैनेज करने के बजाय, आप आसान ऑब्जेक्ट्स और मेथड्स के साथ काम करते हैं।
- सुरक्षा: लाइब्रेरी कैरेक्टर एस्केपिंग, कोट्स और फ़ील्ड के अंदर लाइन ब्रेक को सही तरीके से हैंडल करती है।
- लचीलापन: विभिन्न डिलीमीटर (कॉमा, सेमीकोलन, टैब), एस्केप कैरेक्टर और स्ट्रिंग डिलीमीटर के लिए सपोर्ट।
- परफॉरमेंस: जनरेटर (
yield) का उपयोग करके किसी भी आकार की फ़ाइलों को बिना पूरी सामग्री को मेमोरी में लोड किए प्रोसेस किया जा सकता है। - कार्यक्षमता: JSON, HTML, XML में कन्वर्ट करने, सॉर्ट करने, फ़िल्टर करने और कॉलम बदलने के लिए बिल्ट-इन मेथड्स।
लाइब्रेरी की इंस्टॉलेशन
league/csv की इंस्टॉलेशन Composer के ज़रिए की जाती है, जो PHP के लिए डिपेंडेंसी मैनेजर है। सुनिश्चित करें कि आपके सिस्टम में Composer इंस्टॉल है।
अपने प्रोजेक्ट की रूट डायरेक्टरी में टर्मिनल खोलें और यह कमांड चलाएँ:
composer require league/csv
सफल इंस्टॉलेशन के बाद, आपके प्रोजेक्ट में vendor फ़ोल्डर और composer.json / composer.lock फ़ाइल बन जाएगी। PHP स्क्रिप्ट में लाइब्रेरी को शामिल करने के लिए Composer के स्टैंडर्ड ऑटोलोडर का उपयोग करें:
require 'vendor/autoload.php';
use League\Csv\Reader;
use League\Csv\Writer;
use League\Csv\Statement;
कोड उदाहरण के साथ त्वरित शुरुआत
चलिए एक सरल CSV फ़ाइल बनाते हैं, उसमें डेटा लिखते हैं, और फिर उसे पढ़ते हैं।
उदाहरण 1: CSV में डेटा लिखना
<?php
require 'vendor/autoload.php';
use League\Csv\Writer;
// Writer ऑब्जेक्ट बनाएँ
$writer = Writer::createFromPath('users.csv', 'w+');
// हेडर डालें
$writer->insertOne(['ID', 'नाम', 'ईमेल']);
// डेटा की कई पंक्तियाँ डालें
$writer->insertAll([
[1, 'राहुल शर्मा', 'rahul@example.com'],
[2, 'प्रिया वर्मा', 'priya@example.com'],
[3, 'अंकित सिंह', 'ankit@example.com'],
]);
echo "users.csv फ़ाइल सफलतापूर्वक बन गई!";
?>
उदाहरण 2: CSV से डेटा पढ़ना
<?php
require 'vendor/autoload.php';
use League\Csv\Reader;
// Reader ऑब्जेक्ट बनाएँ
$reader = Reader::createFromPath('users.csv', 'r');
$reader->setHeaderOffset(0); // पहली पंक्ति हेडर है
// सभी रिकॉर्ड्स को एसोसिएटिव ऐरे के रूप में प्राप्त करें
$records = $reader->getRecords();
foreach ($records as $record) {
echo "ID: " . $record['ID'] . ", नाम: " . $record['नाम'] . ", ईमेल: " . $record['ईमेल'] . "<br>";
}
?>
league/csv लाइब्रेरी के मुख्य मेथड्स और फंक्शन्स
आइए CSV के साथ काम करने के लिए लाइब्रेरी द्वारा प्रदान किए गए प्रमुख मेथड्स पर नज़र डालते हैं।
1. Reader::createFromPath() और Writer::createFromPath()
क्या करता है: दिए गए पथ पर फ़ाइल के साथ काम करने के लिए Reader या Writer ऑब्जेक्ट बनाता है।
पैरामीटर:
$path(string): फ़ाइल का पथ।$open_mode(st