Bernard: CSV Dateien mit Zeilenumbrüchen in Zellen verarbeiten

Hallo !

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

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 ?

Gruss
Bernard

  1. 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

    1. 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>).

      Korrigiere mich: PHP bzw. fgetcsv()erkennt die Zusammengehörigkeit und lässt die Zeile intakt!
      "Zelle 1
      umbrochen";Zelle 2;Zelle 3

      wird zu
      <TR><TD>Zelle 1
      umbrochen</TD>
      <TD>Zelle2</TD>
      <TD>Zelle3</TD>
      </TR>

      nur um den den HTML-Umbruch musst Du Dich noch kümmern.

      Rudi