Gå til innhold

Lese linje etter dato?


Anbefalte innlegg

Jeg vil ha et script som henter ut en linje etter dato (evt. klokkeslett) for så å skrive det ut. Dersom datoen er passert hopper den automatisk videre til neste linje. Og ikke lese neste linje.

 

Har prøvd og feilet litt. Håpet egentlig på at noen av guruene her kunne hjelpe meg.

 

Blir kjempeglad for all hjelp.

Lenke til kommentar
Videoannonse
Annonse

Oh, det er ikke no stort problem:

 

$linjer[] = 18:39||Dette er en koselig tekst";
linjer[] = 22:40||Gå til sengs!";
linjer[] = "02:11||Hehe, er du oppe nå?";

foreach($linjer as $linje) {
$tid = date("H:i");
$stopp = "0";

if ($linje[0] > $tid && $stopp == "0") {
echo "Klokken er $tid: $linje[0]";
$stopp = "1";
}

}


 

 

Mulig det går ann å gjøre det enklere også :-)

Lenke til kommentar

Dette ble litt annerledes enn jeg hadde tenkt. Det jeg ser for meg er

 

I egen .txtfil

 

dato1|| Trening kl. 18.00

dato2|| Kamp kl. 11.00

dato3|| Husk å betale billån i dag.

 

 

EDIT:

 

Skriver ut kun dato2 ved gjeldene dato, dersom det ikke er noe for gitt dato skrives ingenting ut.

Endret av formannen
Lenke til kommentar

Du kan vel kanskje prøve noe slikt som denne her (ikke testet):

<?php

$fil = 'fil.txt';
$innhold = file($fil); // Åpne $fil og legg hver linje inn i arrayet $innhold

foreach($innhold as $i) {
 $linje = explode('||', $i); // Del linjen ved ||, og legg inn i nytt array ($linje)
 if(date('d.m.Y') == $i[0]) { // Hvis dagens dato er lik dato i arrayet, skriv ut informasjonen
   echo $i[1] . "<br />\n";
 }
}

?>

Datoene i filen din må da skrives i formatet dd.mm.yyyy, f.eks. '08.05.2005'

Endret av PT
Lenke til kommentar
er det noen spesiell grunn til at du kjører rtrim på filnavnet?

Nei, egentlig ikke :p

Var litt trøtt når jeg skrev det, så det ver sikkert noe som hang igjen fra den gangen jeg brukte fopen(). Da ville det vel blitt någet slik (akkurat den biten):

$fp = fopen($fil, r);
$innhold = fread($fp, filesize($fil));
$innhold = explode('\n', rtrim($innhold));

*fikse overstående post*

Lenke til kommentar
Du kan vel kanskje prøve noe slikt som denne her (ikke testet):

<?php

$fil = 'fil.txt';
$innhold = file($fil); // Åpne $fil og legg hver linje inn i arrayet $innhold

foreach($innhold as $i) {
 $linje = explode('||', $i); // Del linjen ved ||, og legg inn i nytt array ($linje)
 if(date('d.m.Y') == $i[0]) { // Hvis dagens dato er lik dato i arrayet, skriv ut informasjonen
   echo $i[1] . "<br />\n";
 }
}

?>

Datoene i filen din må da skrives i formatet dd.mm.yyyy, f.eks. '08.05.2005'

Men vil denne koden kunne sortere alle linjene i tekstfila da? jeg ser ikke noe som gjør annet enn ting som skjer akuratt at dag blir skrivd ut. Ville han ikke ha sortert alle datoene?

Lenke til kommentar
Men vil denne koden kunne sortere alle linjene i tekstfila da? jeg ser ikke noe som gjør annet enn ting som skjer akuratt at dag blir skrivd ut. Ville han ikke ha sortert alle datoene?

Så vidt jeg har forstått innlegget til formannen, vil han bare skrive ut alle linjene med dato lik dagens dato, og det gjør mitt fine lille skript.

Lenke til kommentar

Dette virker bra, men bare en ting jeg lurer på... hvordan kan jeg får den til å skrive alltid skrive ut neste element, dvs. at f. eks den skriver ut "trening mandag 9. mai" allerede 8. mai dersom det ikke skjer noe 8. mai.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...