मैं fgetCsv का उपयोग करने की कोशिश कर रहा हूं लेकिन किसी कारण से यह केवल पहली पंक्ति पढ़ रहा है। यहाँ कोड है:

$fieldseparator = ",";
$lineseparator = "\r";


if(!file_exists($csvFile)) {
    echo "<div id='error'>Cannot find uploaded file. Please try again</div>";
    exit;
}

$file = fopen($csvFile,"r");

if(!$file) {
    echo "<div id='error'>Error loading CSV file</div>";
    exit;
}

$size = filesize($csvFile);
if(!$size) {
    echo "<div id='warning'>File is empty</div>";
    exit;
}

$query = "";
$content = fgetcsv($file,$size,$lineseparator);


fclose($file);

foreach($content as $data) {
        $values = explode($fieldseparator,$data);
        $query[$i] = "('".implode("','",$values)."')";
}

यह सिर्फ एक लाइन आउटपुट करता है। यहाँ सीएसवी फ़ाइल है:

TSE-P01,1,WO47653897,RM,EcoQuiet,1
TSE-P02,1,WO47653898,RM,EcoQuiet,1
TSE-P03,1,WO47653899,RM,EcoQuiet,1
TSE-P04,1,WO47653900,RM,EcoQuiet,1
TSE-P05,1,WO47653901,RM,EcoQuiet,1
TSE-P06,1,WO47653902,RM,EcoQuiet,1
TSE-P07,1,WO47653903,RM,EcoQuiet,1
TSE-P08,1,WO47653904,RM,EcoQuiet,1

कोई विचार ऐसा क्यों हो रहा है?

7
THEK 13 नवम्बर 2011, 01:17

2 जवाब

सबसे बढ़िया उत्तर

दस्तावेज़ से:

fgetcsv — CSV फ़ील्ड के लिए फ़ाइल पॉइंटर और पार्स से लाइन प्राप्त करता है

यदि आप एक से अधिक लाइन चाहते हैं तो आपको इसे एक से अधिक बार कॉल करने की आवश्यकता है।

10
Ignacio Vazquez-Abrams 13 नवम्बर 2011, 01:20

यह उदाहरण w3schools से "उदाहरण 2" है http://www.w3schools.com/php/func_filesystem_fgetcsv .एएसपी

$file = fopen("contacts.csv","r");

while(!feof($file))
  {
  print_r(fgetcsv($file));
  }

fclose($file);

जबकि लूप का उपयोग करके कोड पूरी फ़ाइल/सभी लाइनों के माध्यम से पुनरावृत्त होता है ..

वैकल्पिक रूप से .. यदि आप ऐसा कुछ करते हैं ..

print_r(fgetcsv($file));
print_r(fgetcsv($file));
print_r(fgetcsv($file));

यह केवल पहली 3 पंक्तियों को प्रिंट करेगा ..

7
user2399432 29 जिंदा 2014, 15:58