CSV-Datei mit gefilterten Werten einlesen

Alles, was PHP betrifft, kann hier besprochen werden.

CSV-Datei mit gefilterten Werten einlesen

Postby juergen&lx » 02. October 2008 21:08

Hallo zusammen,

von einem fremdem Server möchte ich Daten aus einer csv-Datei einlesen.
Das Laden der Datei und Auslesen aller Daten funktioniert einwandfrei.
Die Datei ist >10MByte und beinhaltet über 10.000 Datensätze in 23 Feldern.

Das Beispiel ist aus http://de3.php.net/manual/de/function.fgetcsv.php
Code: Select all
$row = 0;                                      // Anzahl der Arrays
$handle = fopen ("test.csv","r");   // Datei zum Lesen öffnen
while ( ($data = fgetcsv ($handle, 2048, ";")) !== FALSE ) {    // Daten werden aus der Datei
                                                // in ein Array $data gelesen
   if (!$data[21] == "Text" )   {                        // Filter
      continue;
      }                                          
      $num = count ($data);                                  // Felder im Array $data
                                                // werden gezählt
      print "<p> $num fields in line $row: <br>\n<hr>";
      
      $row++;                                       // Anzahl der Arrays wird inkrementiert
                                                // Array anzeigen
      for ($c=0; $c < $num; $c++) {                     // FOR-Schleife, um Felder
         print $data[$c] . "<br>\n";                     // des Arrays auszugeben
   }
      
}
fclose ($handle);


Das Problem dabei ist, dass durch die Function
Code: Select all
if (!$data[21] == "Text" )   { continue; }
nur noch eine große Leere angezeigt wird.

Auch diese Function brachte keine Besserung:
Code: Select all
function avoid_bad_sign($strings) {
$strings = str_replace("\"\"", "'", $strings);
$strings = str_replace("\"", "", $strings);
$strings = str_replace("\\", "", $strings);
$strings = str_replace("\n", "",$strings);
$strings = str_replace("\r", "",$strings);
return $strings;
}


Jürgen
juergen&lx
 
Posts: 154
Joined: 18. February 2004 21:36
Location: in einem Dorf am Rande des Strombergs
Operating System: Linux

[gelöst]

Postby juergen&lx » 02. October 2008 22:05

Hallo,

Antwort gefunden:

es lag an den unterschiedlichen Zeichensätzen. Während das Progrämmle in utf8-ZeichenFormat geschrieben ist, hat die csv-Datei das iso8895-1-ZeichenFormat

Jürgen
juergen&lx
 
Posts: 154
Joined: 18. February 2004 21:36
Location: in einem Dorf am Rande des Strombergs
Operating System: Linux


Return to PHP

Who is online

Users browsing this forum: No registered users and 2 guests