daten sortieren aus einer text datei
Jack The Ripper
- php
Hallo,
hab en newsscript mit php gemacht. klappt auch alles! ich schreibe meine daten nicht in eine msql datenbank sondern in ne textdatei! Jetzt will ich beim auslesen die daten sortieren nach dem datum! allerdings wie?? Hier is der php code zum auslesen aus der textdatei
<?
$news = file("news.txt");
for($z = 1; $z <= count($news); $z++)
{
$dat = explode("<|news|>", $news[count($news) - $z]);
echo "$dat[2]<br>$dat[1]<br>";
};
?>
die textdatei sieht so aus
12313<|news|>12.12.03<|news|>Überschrift<|news|>blaaablaaablaaaa
12313<|news|>13.12.03<|news|>Überschrift2<|news|>2blaaablaaablaaaa
usw..
Wie sorte ich jetzt des datum?
<?
$news = file("news.txt");
for($z = 0; $z <= count($news); $z++)
{
$dat = explode("<|news|>", $news[count($news) - $z]);
echo "$dat[2]<br>$dat[1]<br>";
};
?>
die textdatei sieht so aus12313<|news|>12.12.03<|news|>Überschrift<|news|>blaaablaaablaaaa
12313<|news|>13.12.03<|news|>Überschrift2<|news|>2blaaablaaablaaaa
usw..Wie sorte ich jetzt des datum?
mach das anders ;-)
<?php
$daten = array();
// Datei öffnen
$fh = fopen("news.txt", "r");
if($fh) {
// Datei auslesen
while(!feof($fh)) {
$line = fgets($fh, 4096);
$daten[] = explode("<|news|>", $line);
}
fclose($fh);
unset($fh);
unset($line);
// Werte sortieren (Bubblesort - einfach und ausreichend??!)
for($i=count($daten); $i>0; $i--) {
for($j=0; $j<$i; $j++) {
// Sortierung Aufsteigend (kleinstes zuerst)
// Falls anders gewünscht, einfach aus > ein < machen ;o)
if(strToTime($daten[$j][1]) > strToTime($daten[$j+1][1]) {
$temp = $daten[$j];
$daten[$j] = $daten[$j+1];
$daten[$j+1] = $temp;
unset($temp);
}
}
}
}
else
die("Datei konnte nicht geöffnet werden!!");
// Ausgabe...
?>
Gruß
Stefan
<?php
$daten = array();
// Datei öffnen
$fh = fopen("news.txt", "r");
if($fh) {
// Datei auslesen
while(!feof($fh)) {
$line = fgets($fh, 4096);
$daten[] = explode("<|news|>", $line);
}
fclose($fh);
unset($fh);
unset($line);
// Werte sortieren (Bubblesort - einfach und ausreichend??!)
for($i=count($daten); $i>0; $i--) {
for($j=0; $j<$i; $j++) {
// Sortierung Aufsteigend (kleinstes zuerst)
// Falls anders gewünscht, einfach aus > ein < machen ;o)
HIER if(strToTime($daten[$j][1]) > strToTime($daten[$j+1][1]) {
$temp = $daten[$j];
$daten[$j] = $daten[$j+1];
$daten[$j+1] = $temp;
unset($temp);
}
}
}
}
else
die("Datei konnte nicht geöffnet werden!!");
// Ausgabe...
?>
THX nur leider klapts nich ganz :(
Zeigt fehler bei Parse error: parse error, unexpected '{' in home.php on line 49.
Danke noch mal :)
<?php
$daten = array();// Datei öffnen
$fh = fopen("news.txt", "r");
if($fh) {
// Datei auslesen
while(!feof($fh)) {
$line = fgets($fh, 4096);
$daten[] = explode("<|news|>", $line);
}fclose($fh);
unset($fh);
unset($line);// Werte sortieren (Bubblesort - einfach und ausreichend??!)
for($i=count($daten); $i>0; $i--) {
for($j=0; $j<$i; $j++) {
// Sortierung Aufsteigend (kleinstes zuerst)
// Falls anders gewünscht, einfach aus > ein < machen ;o)
HIER if(strToTime($daten[$j][1]) > strToTime($daten[$j+1][1])) {
$temp = $daten[$j];
$daten[$j] = $daten[$j+1];
$daten[$j+1] = $temp;
unset($temp);
}
}
}
}
else
die("Datei konnte nicht geöffnet werden!!");// Ausgabe...
?>
THX nur leider klapts nich ganz :(
Zeigt fehler bei Parse error: parse error, unexpected '{' in home.php on line 49.Danke noch mal :)
Dann mach doch ganz hinten einfach selbst das ) dazu *g* hatte es vergessen und nun hinzugefügt... versuchs halt nochmal ;o)
thx
Also ich glaub ich bin unfähig!
klappt immer noch nich!!! also der fehler is weg! zeigt alles an
nur nich die text daten :(, also giebt gar nix aus!
;) danke für deine Gedult mit solchen noobs wie mir ;)
umm,
du hast aber schon da wo bei mir // Ausgabe steht, ein paar zeilen hingeschrieben die die ausgabe herbeiführen oder???
zum beispiel:
for($i=0; $i<count($daten); $i++) {
echo implode("<|news|>", $daten[$i]);
}
???
Gruß
Stefan
zum beispiel:
for($i=0; $i<count($daten); $i++) {
echo implode("<|news|>", $daten[$i]);
}
hm ja, ok wirst mich auslachen ich habs mit
echo "&daten[2]" probiert! kam nur array!
naja jetzt hab ich wieder dein versuch ausprobiert:) jetzt giebt er mir alles aus, sogar <|news|>, ! Sorry ich raffs nich so ganz:)
Gruß
Jack