nur die ersten 3 zeilen ausgeben aber mit explode trennen
cr
- php
hallo,
leider hänge ich grad und weiß nicht weiter...
ich habe eine Textdatei mit folgendem Inhalt:
01.02.07|text1
02.02.07|text2
05.03.07|text3
09.04.07|text4
so nun soll mit php immer das ausgehend vom aktuellen datum de nächsten 3 ereignisse angezeigt werden.
standartmäßig habe ich mal folgendes:
$datei = file('datei.txt');
foreach(datei as $zeile);
{
$zeile = trim($zeile);
temp_arr = explode('|',$zeile);
echo "datum $zeile[0] und text $zeile[1]";
}
aber wie bekomm ich das mit dem datum hin? oder erstmal wäre mir auch geholfen, wenn ich wüsste, wie ich nur die ersten 3 zeilen der txt augeben.
vielen dank
cr
Ich grüsse den Cosmos,
wenn ich wüsste, wie ich nur die ersten 3 zeilen der txt augeben.
Statt foreach() einfach for() nutzen.
Möge das "Self" mit euch sein
hallo,
also würde dass dann wie folgt lauten? (ist ein fehle drin?)
$datei = file('datei.txt');
for($i=0;$i < 3;i++)
{
echo "??";
}
Hallo
also würde dass dann wie folgt lauten? (ist ein fehle drin?)
$datei = file('datei.txt');
for($i=0;$i < 3;i++)
{
echo "??";
}
Damit gibst du die ersten drei in der Datei gespeicherten Zeilen aus, egal ob sie deinen Wünschen (Datum heute oder später) entsprechen.
Tschö, Auge
Hallo
$datei = file('datei.txt');
for($i=0;$i < 3;i++)
{
echo "??";
}Damit gibst du die ersten drei in der Datei gespeicherten Zeilen aus, egal ob sie deinen Wünschen (Datum heute oder später) entsprechen.
... oder nicht.
Tschö, Auge
Ich grüsse den Cosmos,
Damit gibst du die ersten drei in der Datei gespeicherten Zeilen aus, egal ob sie deinen Wünschen (Datum heute oder später) entsprechen.
... oder nicht.
Wie kommst du auf das schmale Brett? Es werden lediglich 6 Fragezeichen ausgegeben, und nichts anderres.
Möge das "Self" mit euch sein
hallo zusammen,
also das mit dem testen war mein fehler (habe statt < das hier im script verwendet >, deshalb hats bei mir auch nicht funkrioniert, blöderweise hab ich es richtig hier gepostet)
er gibt 3 arrays aus (3x wort array)
grüße cr
Ich grüsse den Cosmos,
er gibt 3 arrays aus (3x wort array)
Ein echo "??"; kann unmöglich 3x das Wort array ausgeben. Entweder postest du exakt den Quellcode, den du verwendest, oder suchst deinen Fehler allein. Hier gibt es keine Hellseher.
Möge das "Self" mit euch sein
Hallo
er gibt 3 arrays aus (3x wort array)
Wenn da drei Arrays sind, gibt er das wohl aus. Du musst schon auf die einzelnen Elemente des/der Arrays (das/die wir, wegen fehlendem Quelltext, nicht kennen) zugreifen.
Tschö, Auge
Hallo
Damit gibst du die ersten drei in der Datei gespeicherten Zeilen aus, egal ob sie deinen Wünschen (Datum heute oder später) entsprechen.
... oder nicht.
Wie kommst du auf das schmale Brett? Es werden lediglich 6 Fragezeichen ausgegeben, und nichts anderres.
hehe, mit exakt dem geposteten Code, ja. Ich ging aber davon aus, dass er das "??" mit sinnvollerem Code ersetzt hat (was wohl nicht ganz richtig ist).
Tschö, Auge
Ich grüsse den Cosmos,
(ist ein fehle drin?)
Wie wärs mal mit ausprobieren?
Möge das "Self" mit euch sein
Liebe(r) cr,
Manuel hat Dir ja schon einen Schubs in die richtige Richtung gegeben. Hier noch etwas von mir:
so nun soll mit php immer das ausgehend vom aktuellen datum de nächsten 3 ereignisse angezeigt werden.
Datumsangaben lassen sich besonders gut vergleichen, wenn man sie in dieser Form hat: YYYYMMDD, also z.B. 20070210 für den 10.02.2007, denn dann kann man mit einem größer-/kleinergleich operieren.
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hallo
ich habe eine Textdatei mit folgendem Inhalt:
01.02.07|text1
02.02.07|text2
05.03.07|text3
09.04.07|text4so nun soll mit php immer das ausgehend vom aktuellen datum de nächsten 3 ereignisse angezeigt werden.
$datei = file('datei.txt');
foreach(datei as $zeile);
{
$zeile = trim($zeile);
temp_arr = explode('|',$zeile);
echo "datum $zeile[0] und text $zeile[1]";
}
Zuerst: dein Quellcode hat mehrere Fehler. In die Zeile mit foreach
gehört _kein_ Semikolon, da die folgenden Anweisungen zur Schleife, die in dieser Zeile definiert wird, gehören. Auch dein "temp_arr" gibt es nicht so, wie du es gern hättest. Für eine Variable fehlt das Dollarzeichen, zudem benutzt du es nicht einmal (echo "datum $zeile[0] ...
).
aber wie bekomm ich das mit dem datum hin?
Dazu musst du das gespeicherte Datum mit dem aktuellen oder einem anderen gewünschten Datum vergleichen. Um das ganz einfach zu machen, solltest du das Format des Datums ändern. Mit dem Format JJJJMMTT, z.B. 20070305 für den 05.03.2007, gehst du sicher, dass bei einer Sortierung die Reihenfolge der Daten immer richtig ist. Nur zur Anzeige der Daten sollte das Datum wieder umformatiert werden.
Mit date("Ymd");
holst du dir das aktuelle Datum (im von mir präferierten Format). Mit diesem vergleichst du $zeile[0]
, welches dann natürlich auch dieses Format haben muss, auf >= (größer, gleich).
$datei = file('datei.txt');
$jetzt = date("Ymd");
$counter = 0;
$ergebnis = array();
foreach(datei as $zeile)
{
$zeile = trim($zeile);
$zeile = explode('|',$zeile);
if ($zeile[0]>=$jetzt)
{
# Bedingung trifft auf Zeile zu, Zaehler um 1 heraufsetzen.
$counter++;
# eventuell hier das Datum umformatieren
# (hier mit selbstgeschriebner Funktion)
$zeile[0] = formatiere_datum($zeile[0]);
$ergebnis[] = "datum $zeile[0] und text $zeile[1]";
if ($counter==2)
{
# Wenn $counter den Wert 2 hat, liegen 3 Ergebnisse vor (0,1,2).
# Die Schleife wird mit "break" verlassen.
break;
}
}
}
if (!empty($ergebnis))
{
# Die Variable $ergebnis enthaelt Daten
# (Wenn kein Datensatz der Bedingung entspricht, wuerde $ergebnis leer sein)
foreach ($ergebnis as $bla)
{
echo $bla;
}
}
oder erstmal wäre mir auch geholfen, wenn ich wüsste, wie ich nur die ersten 3 zeilen der txt augeben.
vielen dank
cr
Tschö, Auge