CSV Dateien mit Zeilenumbrüchen in Zellen verarbeiten
Bernard
- php
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
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
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