Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> PHP

PHP में CSV File Parse करना


PHP में CSV files को parse करने के built-in functions और सर्वोत्तम अभ्यास।

विधि 1: fgetcsv() - Streaming/Large Files के लिए (अनुशंसित)

<?php
function parseCsv($filePath, $delimiter = ',', $enclosure = '"', $escape = '\\') {
    $data = [];
    $row = 0;
    
    if (($handle = fopen($filePath, 'r')) !== false) {
        // Header row पढ़ें (यदि मौजूद है)
        $headers = fgetcsv($handle, 0, $delimiter, $enclosure, $escape);
        
        while (($rowData = fgetcsv($handle, 0, $delimiter, $enclosure, $escape)) !== false) {
            $row++;
            
            // Skip empty rows
            if (array_filter($rowData) === []) continue;
            
            // Header के साथ associative array बनाएं
            if ($headers) {
                $data[] = array_combine($headers, $rowData);
            } else {
                $data[] = $rowData;
            }
        }
        fclose($handle);
    }
    
    return $data;
}

// उपयोग
$csvData = parseCsv('data.csv');
print_r($csvData);

विधि 2: str_getcsv() - Small Files/Strings के लिए (PHP 5.3+)

<?php
// Entire file read करें
$content = file_get_contents('data.csv');
$lines = explode("\n", $content);

$data = [];
$headers = null;

foreach ($lines as $line) {
    $line = trim($line);
    if ($line === '') continue;
    
    $row = str_getcsv($line, ',', '"', '\\');
    
    if ($headers === null) {
        $headers = $row;
    } else {
        $data[] = array_combine($headers, $row);
    }
}

print_r($data);

विधि 3: SplFileObject (Object-Oriented, Memory Efficient)

<?php
$file = new SplFileObject('data.csv');
$file->setFlags(
    SplFileObject::READ_CSV | 
    SplFileObject::READ_AHEAD | 
    SplFileObject::SKIP_EMPTY
);
$file->setCsvControl(',', '"', '\\');

$headers = $file->current();
$file->next();

$data = [];
foreach ($file as $row) {
    $data[] = array_combine($headers, $row);
}

print_r($data);

विधि 4: League/CSV Library (Production के लिए अनुशंसित)

// Composer: composer require league/csv
use League\Csv\Reader;

$csv = Reader::createFromPath('data.csv', 'r');
$csv->setHeaderOffset(0); // First row as headers

$records = $csv->getRecords(); // Iterator (memory efficient)

foreach ($records as $record) {
    // $record is associative array
    echo $record['name'] . "\n";
}

// या सभी एक साथ
$allData = iterator_to_array($records);

आम CSV समस्याएं और समाधान

समस्यासमाधान
Quoted fields में commasfgetcsv() automatically handles
Quoted fields में newlinesfgetcsv() handles, str_getcsv() नहीं
Different delimiters (;, \t, |)Delimiter parameter specify करें
BOM (Byte Order Mark)fgets() first line से BOM strip करें
Encoding issues (UTF-8, UTF-16)mb_convert_encoding() उपयोग करें
Large files (memory)Streaming (fgetcsv, SplFileObject) उपयोग करें

BOM Handling के साथ Robust Parser

<?php
function parseCsvRobust($filePath, $delimiter = ',') {
    $handle = fopen($filePath, 'r');
    if (!$handle) throw new Exception("Cannot open file");
    
    // BOM detect और remove करें
    $bom = fread($handle, 3);
    if ($bom !== "\xEF\xBB\xBF") {
        rewind($handle); // Not UTF-8 BOM, rewind
    }
    
    $headers = fgetcsv($handle, 0, $delimiter);
    if (!$headers) return [];
    
    // Headers trim करें
    $headers = array_map('trim', $headers);
    
    $data = [];
    while (($row = fgetcsv($handle, 0, $delimiter)) !== false) {
        if (array_filter($row) === []) continue; // Skip empty
        $data[] = array_combine($headers, $row);
    }
    
    fclose($handle);
    return $data;
}
  1. पायथन का उपयोग करके PDF को CSV में कन्वर्ट करें पायथन का उपयोग करके PDF को CSV में कन्वर्ट करें

    पायथन अपने विशाल पैकेज लाइब्रेरी के लिए जाना जाता है। लाइब्रेरी की मदद से, हम देखेंगे कि PDF को CSV फ़ाइल में कैसे कन्वर्ट करें। CSV फ़ाइल कुछ भी नहीं है बल्कि डेटा का संग्रह है, जिसे रो और कॉलम के सेट के साथ फ्रेम किया गया है। पायथन लाइब्रेरी में PDF को CSV में कन्वर्ट करने के लिए विभिन्न पैकेज उप

  1. TXT को CSV में कैसे बदलें? TXT को CSV में कैसे बदलें?

    एक टेक्स्ट फाइल एक मानक टेक्स्ट दस्तावेज है जिसमें प्लेन टेक्स्ट होता है और इसमें कोई अतिरिक्त फॉर्मेटिंग नहीं होती। टेक्स्ट फाइलें अधिकांश डिवाइस के साथ संगत होती हैं और उनका एक्सटेंशन .txt होगा। जबकि CSV (कॉमा सेपरेटेड वैल्यू) फाइलों में अधिक विशिष्ट फॉर्मेटिंग तत्व होंगे। कभी-कभी एक उपयोगकर्ता को

  1. अपनी वर्डप्रेस साइट सुरक्षित करें: wp-config.php को हैकर्स से बचाएं अपनी वर्डप्रेस साइट सुरक्षित करें: wp-config.php को हैकर्स से बचाएं

    हैकर की मानसिकता से सोचने की कोशिश करें। क्या आप उस प्लेटफॉर्म में सेंध लगाना पसंद नहीं करेंगे जिसका उपयोग हजारों वेबसाइटों द्वारा किया जाता है या कई वेबसाइटों के साथ प्लेटफॉर्म पर ब्रूट-फोर्स अटैक करना पसंद नहीं करेंगे? WP-Scanner जैसे टूल्स के ओपन सोर्स उपलब्ध होने के साथ, यहां तक कि एक नौसिखिया स