Seite 1 von 1
CSV Als Tabelle einbinden
Verfasst: Mo 26. Jun 2006, 21:18
von optimist
Hallo!
Folgendes Problem:
Ich bekomme per FTP unregelmäßig eine CSV Datei auf meinen Server gelegt mit dem Format:
wert1;wert2;wert3;wert4;
wert1;wert2;wert3;wert4;
wert1;wert2;wert3;wert4;
Anders geht es leider nicht.
Ich würde jetzt den Inhalt dieser CSV gerne auf einer Seite als Tabelle ausgeben, evtl. müßte ich die Daten auch noch sortieren, dazu ist eine indexspalte vorhanden.
Wer hat da einen guten Vorschlag ?
Gibts da evtl. ein Tool oder Modul ?
Verfasst: Mo 26. Jun 2006, 21:26
von tono
Ein Vorschlag:
mit file() die Datei lesen, dann das resultierende Array komplett durchlaufen mit foreach oder array_walk und jeden einzelnen Teil mit explode ";" behandeln und die resultierenden Arrays in ein neues Array schreiben.
Dann solltest Du ein 2-dimensionales Array haben, das man mit 2 verschachtelten foreachs in eine Tabelle schreiben kann.
Vielleicht gibts dafür auch eine pear-Funktion (pear.php.net).
Verfasst: Mo 26. Jun 2006, 21:36
von optimist
Hallo Tono,
sorry, aber ich verstehe nur Bahnhof.
Verfasst: Mo 26. Jun 2006, 21:42
von Halchteranerin
optimist hat geschrieben:sorry, aber ich verstehe nur Bahnhof.
Tja, dann wirst du dich wohl oder uebel mit PHP auseinandersetzen muessen. Denn ohne PHP-Kenntnisse wirst du, trotz deines Nicknames, keinen Erfolg haben.

Verfasst: Mo 26. Jun 2006, 21:51
von optimist

Toll !
Ihr seid so gut zum mir
Hat keiner von Euch vielleicht so eine PHP Tool/Scriptsammlung wo sowas drin ist ?
Oder gibts ne Möglichkeit das in ne Datenbank zu pushen ?
Ich möchte das nicht über ein Excel-VB-Modul machen, das wäre meine letzte Alternative!
Verfasst: Mo 26. Jun 2006, 21:59
von tono
Ich hab Erbarmen (und zuviel Zeit)
So sollte der Moduloutput aussehen:
Code: Alles auswählen
<?php
echo "<table>\n";
$temp_array1 = file('test.csv'); // Hier den Dateinamen eingeben als absoluten Dateisystempfad oder relativ zum Mandantenpfad z.B. upload/datei.csv
foreach ($temp_array1 as $line)
{
$temp = explode(";",substr(trim($line),0,-1));
echo "<tr>";
foreach ($temp as $td)
{
echo "<td>".$td."</td>";
}
echo "</tr>\n";
}
echo "</table>\n";
?>
den Dateinamen musst Du jetzt fest im Modul eingeben, nicht über Konfiguration oder so.
Der Modulinput bleibt leer.
Verfasst: Mo 26. Jun 2006, 22:09
von optimist
Hey Danke !
Das hilft mir schon Megamäßig.
Verfasst: Mo 18. Jun 2007, 09:00
von so2
Hallo
Ich habe dieses Modul im Einsatz, sollte jedoch jeden Wert pro Zeile der CSV Datei in einer eigenen Spalte darstellen, also:
CSV Datei: Wert1,Wert2,Wert3,...
Tabelle: Spalte1, Spalte2,Spalte3,...
Komme aber nicht drauf, wie vorzugehen. Hat mir jemand vielleicht einen Tip?
Danke im voraus!