- Home
- Categorie
- Coding e Sistemistica
- PHP
- [PHP] Problema con questo piccolo script
-
[PHP] Problema con questo piccolo script
Ho un problema con questo script (che non ho fatto io ma mi sono trovato): in poche parole, dovrebbe tirare fuori una frase presa da un file txt e con l'andare dei giorni incrementare di 1 e prendere la frase successiva.
Lo script è questo:
[PHP]<?php $file = "parola_giorno/file.txt"; $contatore = 1; $oggi = date("d-m-Y"); //echo $oggi; $f = fopen($file, "r"); while ( $line = fgets($f, 1000) ) { //print $line; $contenuto = $line; if(ereg("<data>",$contenuto)){ $data = strstr($contenuto, "<data>"); $data = substr($data, 6, 10); $data = strip_tags($data); $stampa = strstr($contenuto, "<frase>"); $stampa = trim($stampa); $stampa = strip_tags($stampa); $stampa = htmlentities($stampa); //echo " $contatore - $data - $stampa <br>--------------<br>\n"; $parola[$data] = $stampa; $contatore++; } } //print_r($parola); $rand_keys = array_rand($parola, 1); if(array_key_exists($oggi, $parola)){ echo '<i>'.$parola[$oggi].'</i>'; }else{ $ultimo = array_pop(array_keys($parola)); //echo "+$ultimo+"; echo '<i>'.$parola[$ultimo].'</i>'; } ?>[/PHP]
Mentre la sintassi del file txt è la seguente:
<data>20-10-2012</data><frase>Lo spirito della verità darà testimonianza di me, dice il Signore e anche voi date testimonianza.</frase>
(non fate troppo caso al contenuto, è il sito di una comunità di suore).
Praticamente mi viene fuori sempre l'ultima riga del codice invece che prendere quella con la data giusta. Aggiungo inoltre che lo script è inserito nella sidebar di un blog wordpress.
A voi
-
Non è molto chiaro lo scopo preciso dello script.
Quale output deve restituire esattamente? Trovandosi su una sidebar di wordpress, avrebbe senso se, tecnicamente, lo script dovesse restituire l'output relativo al giorno $oggi."con l'andare dei giorni incrementare di 1 e prendere la frase successiva".
Scusa ma non è molto chiaro, spero di aver interpretato bene: da quel che ho capito lo script dovrebbe restituire l'output relativo a $oggi oppure l'ultimo elemento riscontrato.
se è così ecco lo script:
<?php $file = "file.txt"; $contatore = 1; $oggi = date("d-m-Y"); //echo "$oggi<br>"; $f = fopen($file, "r"); while ( $line = fgets($f, 1000) ) { //print $line; $contenuto = $line; if(preg_match("<data>",$contenuto)){ $data = strstr($contenuto, "<data>"); $data = substr($data, 6, 10); $data = strip_tags($data); $stampa = strstr($contenuto, "<frase>"); $stampa = trim($stampa); $stampa = strip_tags($stampa); //$stampa = htmlentities($stampa); //echo " $contatore - $data - $stampa <br>--------------<br>\n"; $parola[$data] = $stampa; $contatore++; } } //print_r($parola); $rand_keys = array_rand($parola, 1); if(array_key_exists($oggi, $parola)){ echo '<i>'.$parola[$oggi].'</i>'; }else{ $ultimo = end($parola); //echo "+$ultimo+"; echo '<i>'.$ultimo.'</i>'; } ?>
-
Allora, evento che non mi spiego: lo script che non ha funzionato per almeno una settimana buona da quando ho aggiornato il file che conteneva la frase da aggiornare ogni giorno, stamani è funzionante! O__O
Per rispondere a giangel, loro hanno una sidebar dove visualizzano ogni giorno una frase inerente il periodo, quindi ad esempio avvento, natale, quaresima e via dicendo, e queste frasi vengono estratte di volta in volta da questo file di testo e mostrate nel riquadro sotto all'immagine.
Ora io non so come mai sia partito, a questo punto meglio così
-
meglio così