Rudolf Horbas: CSV Dateien mit Zeilenumbrüchen in Zellen verarbeiten

Beitrag lesen

wie kann ich in PHP CSV-Dateien verarbeiten ? Gibt es da fertige Scripts zum Einlesen ?

PHP hat die Funktion fgetcsv() (Siehe php-Doku). Hier ist ein recht einfaches, "\t" der Separator, also ein Tabulator. Kann aber auch ein ";" sein.

<?php
$row = 1;
$fp = fopen ("datei.csv","r");
echo "<TABLE BORDER="1">\n";
while ($data = fgetcsv ($fp, 1000, "\t")) {
    $num = count ($data);
    echo "<TR>\n";
    $row++;
    for ($c=0; $c<$num; $c++) {
        echo "<TD>" . $data[$c] . "</TD>\n";
    }
    echo "</TR>\n";
}
fclose ($fp);
?>

Mich interessiert am meisten folgendes: Im Excel kann man ja in einzelnen Zellen Zeilenumbrüche machen. Wie kann ich solch eine CSV-Datei einlesen so dass die Zelle inclusive Zeilenumbrüchen in einem String landet ?

Excel setzt so was folgendermassen um:
"Zelle 1
umbrochen";Zelle 2;Zelle 3

Da fgetcsv() die Datei zeilenweise einliest, haut es mit einer solchen CSV-Datei ohne Nachbearbeitung wahrscheinlich nicht hin (Umbrüche innerhalb eines Feldes ersetzen mit <BR>).

HTH,

Rudi