Tabelle per PHP aus Textdatei generieren
Peter
- php
Hallo, nachdem ich auf den einschlägigen Hilfeseiten zu PHP keinen rechten Zugang zu der Materie finde und auch im Forumsarchiv nicht fündig werde, frag ich mal hier...
Wenn ich Daten in einer Textdatei z.B. in der Form:
1; Hannover; 34; 22; 9; 3; 93; 37; 56; 75
2; Bielefeld; 34; 19; 8; 7; 68; 38; 30; 65
.
.
.
abgelegt habe, wie kann ich aus diesen Daten nun per PHP eine HTML-Tabelle generieren? Wäre schön, wenn mir das jemand in groben Zügen erklären könnte... vielleicht gibts ja auch einen hilfreichen Link dazu?
Grüße.. Peter
Hallo!
Wenn ich Daten in einer Textdatei z.B. in der Form:
1; Hannover; 34; 22; 9; 3; 93; 37; 56; 75
2; Bielefeld; 34; 19; 8; 7; 68; 38; 30; 65
.
.
.
Hier mal der ganz einfache Weg.
$zeilen = file("datei.txt");
echo "<table>";
// diese Zeile arbeitet alle Zeilen ab
for($i = 0; $ < count($zeilen); $i++)
{
// Zeile bei ; trennen
$spalte = explode(";", $zeilen[$i]);
echo "<tr>\n";
// "Spalte" die Zeile durch ausgeben
for($a = 0; $a < count($spalte); $a++)
{
echo "<td>" . $spalte[$a] . "</td>";
}
echo "</tr>\n";
}
echo "</table>";
Schaue Dir mal die Funktionen an:
http://www.php.net/de/file
http://www.php.net/de/explode
MfG, André Laugks
Besten Dank für die schnelle Hilfe, Andre :o)
Ich steige durch das Beispiel so halbwegs durch und weiß jetzt, wie ich ansetzen muß. Ich finde es als PHP-Anfänger nämlich ziemlich schwierig, auf den PHP-Hilfe Seiten so etwas wie einen Gesamteindruck über die Programmiersprache zu bekommen. Stattdessen stand ich heute schon den ganzen Tag rätselnd vor den Myriaden von Befehlen und Funktionen und wußte nicht, wo ich anfangen sollte ;o)
Hallo zusammen,
ich glaube, das geht schneller...
Wenn ich Daten in einer Textdatei z.B. in der Form:
1; Hannover; 34; 22; 9; 3; 93; 37; 56; 75
2; Bielefeld; 34; 19; 8; 7; 68; 38; 30; 65
.
.
.
Hier mal der ganz einfache Weg.
$zeilen = file("datei.txt");
echo "<table>";
// diese Zeile arbeitet alle Zeilen ab
for($i = 0; $ < count($zeilen); $i++)
{
// Zeile bei ; trennen
$spalte = explode(";", $zeilen[$i]);
warum die Zeile trennen?
<?
//... Datei öffnen und Script mit die("Bla Bla"); abbrechen, wenn es
// nicht geklappt hat
$oldSep=";";
$newSep="</td><td>";
echo "<table ....>\n";
echo " <tr><td>\n";
while (!eof($handle1))
{
$oldLine=fgets($handle1);
$newLine=str_replace($oldSep, $oldLine, $newSep);
echo $newLine;
}
echo "</td>>/tr>;
?>
und tschüss...
Meine Tippfehler müsst Ihr bitte selber suchen.
Je nachdem, ob die Datei auch Tags enthält, muss man vorher diese ggf. noch entfernen...
Prost
Tom
---Following OldStuff-----------------------------------------
echo "<tr>\n";
// "Spalte" die Zeile durch ausgeben
for($a = 0; $a < count($spalte); $a++)
{
echo "<td>" . $spalte[$a] . "</td>";
}
echo "</tr>\n";
}
echo "</table>";
Schaue Dir mal die Funktionen an:
http://www.php.net/de/file
http://www.php.net/de/explode
MfG, André Laugks
Hallo Thomas
warum die Zeile trennen?
$oldSep=";";
$newSep="</td><td>";
echo "<table ....>\n";
echo " <tr><td>\n";
while (!eof($handle1))
{
$oldLine=fgets($handle1);
$newLine=str_replace($oldSep, $oldLine, $newSep);
echo $newLine;
}
echo "</td>>/tr>;
?>
Dir ist klar, dass dieses Script eine Tabelle mit exakt einer Zeile erzeugt?
Viele Grüße
Antje
Hallo Thomas
warum die Zeile trennen?
$oldSep=";";
$newSep="</td><td>";
echo "<table ....>\n";
echo " <tr><td>\n";
while (!feof($handle1)) // Hier Fehler...
{
$oldLine=fgets($handle1);
$newLine=str_replace($oldSep, $oldLine, $newSep);
echo $newLine;
echo "</tr>\n<>tr>; // Hier Fehler ...
}
echo "</td></tr>; // Hier Fehler ...
?>
Dir ist klar, dass dieses Script eine Tabelle mit exakt einer Zeile erzeugt?
Viele Grüße
Antje
Nein Antje. Aber Peter aht mir da eben gemailt. Ich muss es wohl nochmal reparieren..
Danke
Oh Oh, da war ich wohl doch ein bisschen schnell mit dem Tippen.
Gruß
Tom
Und weils so schön war, nochmal...
$oldSep=";"; $newSep="</td><td>";
echo "<table ....>\n"; echo " <tr><td>\n";
while (!feof($handle1)) // Hier... { $oldLine=fgets($handle1); $newLine=str_replace($oldSep, $oldLine, $newSep);
echo $newLine; echo "</tr>\n<tr>"; // Hier... } echo "</td></tr>"; // Hier...
?>
Viele Grüße
Tom
$oldSep=";";
$newSep="</td><td>";
echo "<table ....>\n";
echo " <tr><td>\n";
while (!feof($handle1)) // Hier...
{
$oldLine=fgets($handle1);
$newLine=str_replace($oldSep, $oldLine, $newSep);
echo $newLine;
echo "</td></tr>\n<tr><td>"; // Hier............
}
echo "</td></tr>"; // Hier...
?>
Viele Grüße
Tom
Jetzt aber!
Hallo Thomas
warum so hektisch :-), da schleichen sich nur Fehler ein. Hier waren die Parameter von str_replace vertauscht.
ich würde es z.B. so lösen:
<?php
echo '<table border="1">';
$handle1=fopen("text.txt","r");
while (!feof($handle1))
{
$oldLine=fgets($handle1);
echo "<tr><td>".str_replace(";", "</td><td>", $oldLine)."</td></tr>";
}
echo "</table>";
?>
Jetzt stimmts, es ist getestet.
Viele Grüße
Antje
<?php
echo '<table border="1">';
$handle1=fopen("text.txt","r");
while (!feof($handle1))
{
$oldLine=fgets($handle1);
echo "<tr><td>".str_replace(";", "</td><td>", $oldLine)."</td></tr>";
}
echo "</table>";
?>
-------------------------------------------------
Jetzt stimmts, es ist getestet.
Da gibts nicht mehr viel zu sagen:
Danke Anke
Hallo, nachdem ich auf den einschlägigen Hilfeseiten zu PHP keinen rechten Zugang zu der Materie finde und auch im Forumsarchiv nicht fündig werde, frag ich mal hier...
Wenn ich Daten in einer Textdatei z.B. in der Form:
1; Hannover; 34; 22; 9; 3; 93; 37; 56; 75
2; Bielefeld; 34; 19; 8; 7; 68; 38; 30; 65
.
.
.
abgelegt habe, wie kann ich aus diesen Daten nun per PHP eine HTML-Tabelle generieren? Wäre schön, wenn mir das jemand in groben Zügen erklären könnte... vielleicht gibts ja auch einen hilfreichen Link dazu?
Hallo Peter,
Da gibt es auch CSV-Funktionen. Die machen das fast automatisch...
Du kannst Dir gerne von meinem Server das PHP-Handbuch herunterladen. Ist wohl nicht das neueste Buch aber wahrscheinlich das meueste, was in dieser Form im Netz steht. Du brauchst einen NEUEN Acrobat Reader dafür.
Ich habe mir die Schwarte ausgedruckt. Da waren es mal 3 breite Ordner. Nun sind es inzwischen 6, weil ich immer meine eigenen Beispiele und AUfgaben dazwischen geheftet habe...
der link lautet http://bitworks.de/literatur/php/
Gruß
Thomas