Autor |
Nachricht |
bastit
Threadersteller
Dabei seit: 02.08.2007
Ort: -
Alter: 35
Geschlecht:
|
Verfasst Mi 05.12.2007 12:54
Titel [PHP] Aus Textdatei gelesene Einträge sotieren |
|
|
Hallo Zusammen,
Ich habe für eine Seite eine Art Gästebuch programmiert. Und zwar mit dem System, dass eine Textdatei ausgelesen wird. Die einzelnen Kategorien des Eintrags (Name, E-Mail, Datum, Text) sind durch #### getrennt. Die Einträge untereinander sind durch **** getrennt.
Naja, nun das Problem: Die Einträge werden nun leider so sotiert, dass der neuste Eintrag unten ist. Ich ätte es aber gerne andersrum.
Hier der Code:
Code: | <?php
echo "
<table width='100%' border='0' cellspacing='0' cellpadding='0'>
";
$fp = fopen("input.txt","r");
if ($fp)
{
while(!feof($fp))
{
$eintrag = fgets($fp);
$eintrag1 = $eintrag;
$aufteilung1 = explode("****",$eintrag1);
$lg = sizeof($aufteilung1);
for($i=0; $i<$lg; $i++)
{
$aufteilung = $aufteilung1[$i];
$aufteilung2 = explode("####",$aufteilung);
echo "
<tr height='10px'></tr>
<tr>
";
echo "
<td width='150' valign='top'>
<a href='mailto:$aufteilung2[2]'>$aufteilung2[1]</a><br/>
$aufteilung2[3]
</td>
<td valign='top'>
$aufteilung2[4]
</td>
</tr>
";
}
}
fclose($fp);
}
echo "
</table>
"; ?>
|
Ich denke die Lösung wird einfach sein, aber ich komme einfach nicht auf die Lösung.
Ich bedanke mich für eure Hilfe.
lg bastit
Zuletzt bearbeitet von Eistee am Mo 10.12.2007 18:57, insgesamt 3-mal bearbeitet
|
|
|
|
|
kaputt
Dabei seit: 08.05.2003
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mi 05.12.2007 14:58
Titel
|
|
|
Lies die Datei doch mit file() ein. Dann haste einen Array. Den kannste mit array_reverse() umdrehen. Und dann wanderste mit einem foreach() durch deinen Array und machst deine Ausgabe.
|
|
|
|
|
Anzeige
|
|
|
achwasweisich
Dabei seit: 27.09.2007
Ort: Stuttgarter Raum
Alter: -
Geschlecht:
|
Verfasst Mi 05.12.2007 15:16
Titel Re: aus Textdatei gelensene Einträge sotieren |
|
|
bastit hat geschrieben: | Hallo Zusammen,
Ich habe für eine Seite eine Art Gästebuch programmiert. Und zwar mit dem System, dass eine Textdatei ausgelesen wird. Die einzelnen Kategorien des Eintrags (Name, E-Mail, Datum, Text) sind durch #### getrennt. Die Einträge untereinander sind durch **** getrennt.
|
Dann denkst Du aber hoffentlich daran, die Felder Name, E-Mail und Text zu prüfen und eventuell vorhandene **** und #### zu löschen/ersetzen? Sonst schreibt zum Beispiel mal einer "ihr blöden Ar*******er" in Dein Gästebuch und schon haut es Dir alles durcheinander.
Ansonsten würde ich ebenfalls die Datei erst mal in ein Array packen und dann durcharbeiten.
|
|
|
|
|
Pixelpole
Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht:
|
Verfasst Mi 05.12.2007 15:32
Titel
|
|
|
peBBo hat geschrieben: | Lies die Datei doch mit file() ein. Dann haste einen Array. Den kannste mit array_reverse() umdrehen. Und dann wanderste mit einem foreach() durch deinen Array und machst deine Ausgabe. |
das ist schwachsinn...da file das array zeile für zeile abarbeitet...wenn man das array dann umdreht bekommt man totalen unsinn raus.
sinnvoller wäre es beim schreiben der text datei den zeiger einfach auf den anfang zu setzen anstatt auf das ende um daten hinzuzufügen.
ansonsten alles in einen string ballern mit explode ein array basteln und dann mit array_reverse umdrehen
|
|
|
|
|
achwasweisich
Dabei seit: 27.09.2007
Ort: Stuttgarter Raum
Alter: -
Geschlecht:
|
Verfasst Mi 05.12.2007 15:51
Titel
|
|
|
Pixelpole hat geschrieben: | peBBo hat geschrieben: | Lies die Datei doch mit file() ein. Dann haste einen Array. Den kannste mit array_reverse() umdrehen. Und dann wanderste mit einem foreach() durch deinen Array und machst deine Ausgabe. |
das ist schwachsinn...da file das array zeile für zeile abarbeitet...wenn man das array dann umdreht bekommt man totalen unsinn raus.
|
Das kommt ganz darauf an, wann er wo Zeilentrennungen vornimmt und welche Reihenfolge seine Daten haben ...
wenn er das Datum immer vorne hat und jeder Eintrag eine Zeile ergibt, passt es.
Andererseits schadet es auch nicht, das ganze erst mal in einen String zu packen.
|
|
|
|
|
tacker
Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht:
|
Verfasst Mi 05.12.2007 15:59
Titel
|
|
|
Code: | $array = split( '****', file_get_contents( 'file.txt' ) );
$array = array_reverse( $array );
foreach ( $array as $entry ) {
$aufteilung2 = split( '####', $entry );
} |
Zuletzt bearbeitet von tacker am Mi 05.12.2007 16:00, insgesamt 1-mal bearbeitet
|
|
|
|
|
bastit
Threadersteller
Dabei seit: 02.08.2007
Ort: -
Alter: 35
Geschlecht:
|
Verfasst Do 06.12.2007 12:35
Titel
|
|
|
super vielen dank ... ich habe leider noch keine Zeit gehabt das auzuprobieren, werde aber am Wochenende wohl dazu kommen.
der bastit
|
|
|
|
|
SURE612
Dabei seit: 02.12.2005
Ort: Bärlin / CB
Alter: -
Geschlecht:
|
Verfasst Do 06.12.2007 12:42
Titel
|
|
|
ich hab auch ein gästebuch auf datei basis
super billig, aber läuft seit jahren gut
ich hab da einfach pro zeile einen gästebucheintrag
die zeilen kann man da ganz einfach durchlaufen beim auslesen
|
|
|
|
|
|
|
|
Ähnliche Themen |
Die Letzten 5 Einträge in SQL
[PHP] Textdatei mit BOM ausgeben?
Via PHP in Textdatei schreiben. Wie?
pornografische einträge im gästebuch
PDF Formulare (Einträge speichern)
Bestimmte einträge anzeigen in der DB
|
|