Visualizzazione risultati 1 fino 3 di 3

Discussione: Santo del giorno

  1. #1
    topografo non è connesso Neofita
    Data registrazione
    17-11-2008
    Messaggi
    1

    Post 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;" (ricordo ancora il basic)

    Potete aiutarmi?
    Grazie e buon Anno.

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,260

    Predefinito

    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>
    Ultima modifica di dreadnaut : 21-01-2022 alle ore 01.34.57

  3. #3
    frasidipace non è connesso AlterGuru
    Data registrazione
    07-05-2010
    Messaggi
    2,366

    Predefinito

    Salve,
    l'alternativa può essere inserire gli script messi a disposizione da alcuni siti, come ad esempio questo, oppure quest'altro.

    Saluti

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •