2016-03-23 1 views
0

ich bin in diesem Augenblick eine große Schwierigkeit gegenüber. Es ist mir nicht gelungen, das Problem zu beheben. Ich versuche, CSV-Daten ohne leere Zeilen anzuzeigen. Ich dachte, die SPL-Bibliothek könnte es erlauben. Aber was auch immer ich mache, ich kann nicht herausfinden, warum es nicht funktioniert. Könnten Sie? Hier ist mein Code (ganz einfach):SplFileObject :: SKIP_EMPTY funktioniert nicht

<?php \t \t 
 
\t // Lecture du fichier csv 
 
\t $csv = new SplFileObject('fichiers/tempo/test.csv', 'r'); 
 
\t // Flags pour ignorer les lignes vides 
 
\t $csv->setFlags(SplFileObject::READ_CSV | SplFileObject::READ_AHEAD | SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE); 
 
\t $csv->setCsvControl(';'); 
 
?> 
 

 

 
<!DOCTYPE html> 
 

 
<html> 
 

 
    <head> 
 
\t 
 
     <meta charset="utf-8" /> 
 
\t \t 
 
\t \t <link rel="stylesheet" href="style.css" /> 
 
\t \t 
 
\t \t <link rel="icon" type="image/png" href="images/favicon.png" /> 
 
\t \t 
 
     <title>Nas - Insertion de données</title> 
 
\t \t 
 
\t </head> 
 
\t 
 
\t <body> 
 

 
\t \t 
 

 
\t \t <table> 
 
\t \t \t 
 
\t \t \t <?php 
 
\t \t \t \t $tableau = array(); 
 
\t \t \t \t // On parcours les lignes du fichier csv en lecture ==> $csv 
 
\t \t \t \t foreach($csv as $line){ 
 
\t \t \t \t \t echo '<tr>'; 
 
\t \t \t \t \t foreach($line as $var){ 
 
\t \t \t \t \t \t echo '<td>-'.$var.'</td>'; \t \t \t \t \t \t 
 
\t \t \t \t \t } 
 
\t \t \t \t  echo '</tr>'; \t \t \t \t \t \t 
 
\t \t \t \t } 
 
\t \t \t ?> 
 
\t \t \t \t 
 
\t \t </table> 
 
\t 
 
\t </body> 
 
\t \t 
 
</html>

Meine Flaggen nichts zu tun, und ich weiß nicht, was ich falsch mache ..... Danke.

+0

UP ?! OBEN?! OBEN?!! –

+0

Dies sollte wie erwartet funktionieren. Kannst du vielleicht die CSV-Datei und mindestens die PHP-Version veröffentlichen, an der du gerade arbeitest? – JayTaph

Antwort

0

Vielen Dank für Ihre Zeit. Ich habe versucht mit PHP 5.4, 5.5, 5.6 und 7.0, aber es hat nichts getan. Dann wähle ich den folgenden Test zu jeder Schleife setzen:

foreach($csv as $line){ 
 
\t // Ignoring empty lines 
 
\t if(implode($line) == null)continue; 
 
    ...

Mindestens es funktioniert!

Mein Csv ist so etwas wie: Wein ;;;;;;;;;; ;;;;;;;;;; ; Dieser Wein wird im chƒteau oder bei unseren Lieferanten Lager gespeichert und wird für die Sammlung später verfügbar sein ;;;;;;;;;. ;;;;;;;;;; Produkttyp; Jahrgang; Wein; Appellation; Klasse; Menge; Größe; Preis; WA; WS; Bemerkungen Rotwein; 2013; Aiguilhe (d '); Castillon - c "tes de bordeaux ;; 216; 750 ml; 11 80, 87-89, 86-89; Rotwein; 2012; Aiguilhe (d '); Castillon - c "tes de bordeaux ;; 168; 750 ml; 12,50 €; 89-91; 89; Rotwein; 2011; Aiguilhe (d '); Castillon - c „tes de bordeaux ;; 395; 750 ml; 12,60; 88; 89;?

Verwandte Themen