Frequently Asked Questions

Le domande che spesso i web master si pongono e a cui non trovano mai la risposta al volo.  Trovate qui i suggerimenti per risolvere tutti quei piccoli problemi di XHTML, CSS, PHP, Javascript e SQL che vi tormentano il sonno.

  1. Come faccio a formattare date e orari in PHP?
  2. Come si fa a leggere un file di testo in PHP?
  3. Posso mostrare alcuni elementi a video e nasconderli in stampa?
  4. Che cosa significa ''PHP''?
  5. Posso sapere l'indirizzo di un visitatore in PHP?

  1. D: Come faccio a formattare date e orari in PHP?
    R: Con il comando date() è possibile risolvere tutti i problemi di formato delle date e ore.  La sintassi è la seguente:
     
      date([timestamp], 'strFormato')
     
    Se viene omesso il timestamp, saranno considerati data e orario correnti del server.
    Per quanto riguarda la formattazione, questa è definita dal parametro strFormato.  Esaminiamo le configurazioni più ricorrenti e a noi utili (assumendo l'inglese come lingua del server e le ore 17.16.17 del 10 marzo 2005):
     $oggi = date("F j, Y, g:i a");     // March 10, 2005, 5:16 pm
     $oggi = date("m.d.y");             // 03.10.05
     $oggi = date("j, n, Y");           // 10, 3, 2005
     $oggi = date("Ymd");               // 20050310
     $oggi = date("D M j G:i:s Y");     // Sat Mar 10 15:16:08 2005
     $oggi = date("H:i:s");             // 17:16:17
    
  2. D: Come si fa a leggere un file di testo in PHP?
    R: Il metodo più semplice per aprire un file ed ottenerne il contenuto, magari mettendolo in una variabile, è quello di usare lla funzione file($nome_del_file). In questo modo potremo inserire tutto il contenuto del file di testo in un array, una riga per ciascun elemento.

    L'unico argomento della funzione consiste nel percorso relativo del file da leggere (per intenderci potrebbe essere ../dir/file.txt).

    Per lo scorrimento dell'array, invece, potremo fare così:

    foreach ($file_array as $num_linea => $txt_linea) {
       echo "# $num_linea - $txt_linea<br />";
    }
    
  3. D: Posso mostrare alcuni elementi a video e nasconderli in stampa?
    R: Per nulla difficile, è tutta questione di stile...   È una tecnica molto utilizzata e consiste semplicemente nel creare due fogli di stile anziché uno solo. Vediamo come.

    Innanzi tutto creiamo il foglio di stile per il video, se non ne abbiamo già uno, e aggiungiamo due classi con nomi inequivocabili: .noPrint e .printOnly.  Facciamo poi la stessa cosa con un secondo foglio di stile che creeremo appositamente per la stampa.  Per collegarli alle pagine che li useranno faremo così:

    <link href="normal.css" rel="stylesheet"
          type="text/css" />
    
    <link href="stampa.css" rel="stylesheet"
          type="text/css" media="print" />;
    

    Notate l'attributo media nel secondo css impostato a print.  Gli stili non specificati saranno ereditati dal primo css.  Se non abbiamo intenzione di utilizzare file esterni possiamo sempre usare definizioni di stile interne alla pagina (x)html:

    ...
    <style type="text/css">
       ... per lo schermo ...
    </style>
    <style type="text/css" media="print">
       ... per lo stampante ...
    </style>
    ...

    Ma ora viene il bello.  La definizione dello stile è veramente semplice.  Cosa deve fare la classe .noPrint?  Nascondere alla stampante un blocco HTML lasciandolo inalterato sul browser, vero?  Mentre .printOnly dovrà far stampare qualcosa senza visualizzarlo nel browser.  Tutto chiaro?  Ebbene:

     /* Per la stampa (stampa.css) */
     .noPrint   { display: none }
     .printOnly { }
    
     /* Per lo schermo (normal.css) */
     .noPrint   { }
     .printOnly { display: none }
    

    Non dovrebbe essere difficile a questo punto comprenderne il funzionamento: su un elemento div o p o td sul quale avremo applicato la classe .noPrint avremo una visualizzazione normale sul browser, mentre in stampa questo non sarà visibile.  Il funzionamento contrario lo avremo applicando la classe .printOnly

    .
  4. D: Che cosa significa ''PHP''?
    R: Inizialmente l'ideatore del linguaggio battezzò la creatura "Personal Home Page", visto che l'aveva utilizzata per sviluppare il proprio sito personale.
    In seguito PHP diventò un acronimo ricorsivo dal significato più che ovvio: PHP: Hypertext Preprocessor.
  5. D: Posso sapere l'indirizzo di un visitatore in PHP?
    R: Il PHP mette a disposizione un array di valori riguardanti lo stato del server web e una serie di informazioni riguardanti i client. Una di queste è appunto l'indirizzo IP del nostro visitatore ed è contenuto in $_SERVER['REMOTE_ADDR']. Esempio:
    echo 'Il tuo indirizzo &egrave;:' . $_SERVER['REMOTE_ADDR'];