-
Santo del giorno
Buongiorno, sono abbastanza a digiuno di PHP, ma cercavo il modo per prelevare da un file di testo CSV il santo del giorno e metterlo in una pagina web.
Ho cercato se qualcuno avesse sviluppato un sistema simile e ne parlasse nel forum, ma non ho trovato nulla (però potrebbe esserci, magari come messaggio giornaliero non random)
Avrei un file con tutti i santi su http://www.senamion.it/2006/11/08/ta...are-calendari/ dalla quale prendere i santi.
Codice:
"1";"1";"Maria Madre di Dio"
"2";"1";"Basilio, Evelina, Modesto"
"3";"1";"Genoveffa"
"4";"1";"Fausta, Angela, Elsa, Cristiana, Quintiliano, Quintiliana, Ermes, Ermete"
E avrei uno script in Java che però mi costringe a mettere tutti i santi a mano
Codice:
<script language="JavaScript" type="text/javascript">
<!--
// Prelevato su http://www.web-link.it
// Andrea Bianchi
var calendario = new Date();
var mese = calendario.getMonth();
var giorno = calendario.getDate();
var nodate = 1;
// Gennaio
if ((mese == 0) && (giorno == 1)) { location.href="http://www.web-link.it";; var nodate = 0;}
if ((mese == 0) && (giorno == 2)) {document.write(' oggi due gennaio'); var nodate = 0;}
if ((mese == 0) && (giorno == 3)) {document.write(' oggi tre gennaio'); var nodate = 0;}
// Febbraio
if ((mese == 1) && (giorno == 1)) {document.write(' oggi primo febbraio'); var nodate = 0;}
// -->
</script>
Ma se si potesse avere un file esterno consultabile ed editabile facilmente (non so nulla di DB) potrei evitare di scrivere tutti i santi a mano ed appesantire il codice.
Girovagando per il web ho trovato questo codice:
Codice:
<?php
// Nome del file
$filename = 'santi.csv';
// Percorso da cui prelevare il file
$path = 'data/';
// File completo di percorso
$file = $path . $filename;
// Controllo se il file è leggibile
if ( ! is_readable( $file ) ) {
die( 'Il file non è leggibile oppure non esiste!' );
}
// Leggo il contenuto del file
$rows = file( $file );
// Scorro l'array contenente le righe del file
foreach ( $rows as $row ) {
// Separo le colonne
$columns = explode( ';', $row );
/* QUI IL CODICE CHE OCCORRE PER LAVORARE I DATI */
}
... e qui mi blocco... a parte che non tutti i giorni c'è un solo santo, devo estrarre il santo/i santi del giorno e stamparlo a video come testo (l'immagine del santo non serve)
qualcosa del tipo "IF data=0101 echo $santo;" :confused: (ricordo ancora il basic)
Potete aiutarmi? :confused:
Grazie e buon Anno. :wink:
-
C'è un po' di lavoro all'inizio, ma ti suggerirei di convertire il file .csv in PHP, così da non doverlo caricare ogni volta. Fai lo sforzo all'inizio, e poi il resto è più facile.
Codice PHP:
<?php
$santi_per_mese_e_giorno = [
# Gennaio
1 => [
1 => "Maria, Madre di Dio",
2 => "Basilio, Evelina, Modesto",
3 => "Genoveffa",
4 => "Fausta, Angela, Elsa, Cristiana, Quintiliano, Quintiliana, Ermes, Ermete",
# etc
],
# Febbraio
2 => [
# riparti da 1 =>, 2 =>, etc
],
# ... altri mesi ...
];
// "n" e "j" da questa tabella: https://www.php.net/manual/datetime.format.php
$questo_mese = date('n');
$questo_giorno = date('j');
?>
<h1>Resto della pagina</h1>
<p>I santi di oggi: <?= htmlspecialchars($santi_per_mese_e_giorno[$questo_mese][$questo_giorno]) ?>.</p>
L'elenco dei giorni sarà assai lungo. Se vuoi puoi copiarlo in un altro file, e poi "includerlo" nella pagina:
elenco_dei_santi.php
Codice PHP:
<?php
return [
# Gennaio
1 => [
1 => "Maria, Madre di Dio",
2 => "Basilio, Evelina, Modesto",
3 => "Genoveffa",
4 => "Fausta, Angela, Elsa, Cristiana, Quintiliano, Quintiliana, Ermes, Ermete",
# etc
],
# Febbraio
2 => [
# riparti da 1 =>, 2 =>, etc
],
# ... altri mesi ...
];
pagina.php
Codice PHP:
<?php
$santi_per_mese_e_giorno = include('elenco_dei_santi.php');
// "n" e "j" da questa tabella: https://www.php.net/manual/datetime.format.php
$questo_mese = date('n');
$questo_giorno = date('j');
?>
<h1>Resto della pagina</h1>
<p>I santi di oggi: <?= htmlspecialchars($santi_per_mese_e_giorno[$questo_mese][$questo_giorno]) ?>.</p>
-
Salve,
l'alternativa può essere inserire gli script messi a disposizione da alcuni siti, come ad esempio questo, oppure quest'altro.
Saluti