SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
PHP5
prima parte - i fondamenti del linguaggio

             Gianfranco Fedele
            Analista programmatore

           gianfrasoft@gmail.com
         gianfrasoft.wordpress.com
      www.linkedin.com/in/gianfrasoft
PHP5: Introduzione a PHP


• È un linguaggio di programmazione di tipo scripting
  (come, Bash, Javascript, Perl, …), ed è caratterizzato da:
   –   Codice iterpretato (non compilato).

   –   Tipizzazione debole (casting implicito).

   –   È HTML embedded.

   – È un linguaggio procedurale con estensioni ad oggetti.

• È un linguaggio di programmazione utilizzato per lo
  sviluppo di pagine web dinamiche “lato server”.

                                                     gianfrasoft.wordpress.com - 2008
PHP5: Paradigma Web con PHP / 1


                                 Web                                         Server
    Browser client               page
                                                          HTTP
                                                          Server
                                Richiesta
                                GET/POST

                                                             PHP



                                                                         files
                                                    DB

•   Il client richiede al server di elaborare una pagina HTML contenente script
    PHP.
•   L'esecuzione ha come risultato una pagina di solo HTML.
•   Il server invia la pagina ottenuta al browser per la visualizzazione.
                                                               gianfrasoft.wordpress.com - 2008
PHP5: Paradigma Web con PHP / 2

•   Dinamicità “lato client”
     –   Presentazione dinamica: interazione con i contenuti ricevuti dal server.
     –   Tecnologie:
          •   Javascript + DOM.
          •   Applet Java.
          •   Flash.
          •   ...




                                                                      gianfrasoft.wordpress.com - 2008
PHP5: Paradigma Web con PHP / 3

•   Dinamicità “lato server”
     –   Possibilità di generare tutti i contenuti dinamicamente
          •   prelevando informazioni da diverse sorgenti (file, DB, Internet, ...).
          •   processando testo e immagini.
          •   gestendo profili e sessioni.
          •   ...
     –   Tecnologie:
          •   Common Gateway Interface (CGI).
          •   Scriptlet (PHP, Perl, ASP, JSP, …).
          •   Linguaggi HTML-Embedded (PHP, ASP, JSP)




                                                                                  gianfrasoft.wordpress.com - 2008
PHP5: Il Web 2.0 - cenni

•   Ajax - Asynchronous JavaScript and XML
    utilizza una combinazione di:
     –    HTML (o XHTML) e CSS per il markup e lo stile;
     –    DOM (Document Object Model) manipolato attraverso JavaScript.
     –    l'oggetto XMLHttpRequest per l'interscambio asincrono dei dati tra il browser
          dell'utente e il web server.
     –    XML come formato di scambio dei dati, anche se di fatto qualunque formato può
          essere utilizzato.
     –    PHP o qualsiasi altra tecnologia per il processamento dei dati lato server




                                                                   gianfrasoft.wordpress.com - 2008
PHP5: Caratteristiche di PHP

•    Punti di forza del PHP:
      –   È semplice (HTML embedded).
      –   È open source (sotto licenza GPL).
      –   È caratterizzato da buone prestazioni
      –   Grazie a Zend Engine 2 introduce un nuovo modello di programmazione ad
          oggetti, per l’interazione con file XML e per il supporto dei Web Services
      –   È fornito di molte librerie per:
           •   Processamento immagini (GD)
           •   Connessione ai database (MySQL, PostgreSQL, Oracle, ...)
           •   Parser XML anche per processori XSLT
           •   Compressione dati
           •   SSL
           •   Generazione file PDF
           •   Web Services (SOAP, XML-RPC, ...)
           •   ...
      –   Sono disponibili archivi di estensioni e librerie PHP (PEAR, …)
      –   Consente la realizzazione di applicazioni aziendali




                                                                          gianfrasoft.wordpress.com - 2008
PHP5: phpinfo()

•    Per verificare che PHP sia correttamente installato e funzionante sul server:
      – Interrogare un semplice script contentente:
        <?php phpinfo() ?>
      – Questo script visualizza molte informazioni sullo stato corrente del PHP Queste
        includono informazioni sulle opzioni di compilazione del PHP, sui moduli, la
        versione di PHP, informazioni sul server e sull'ambiente (se compilato come
        modulo), l'ambiente PHP, la versione di OS, percorsi, valori delle configurazioni
        base e attuali, intestazioni HTTP e la licenza del PHP.
      – Dato che ogni sistema ha una configurazione differente, phpinfo() viene
        comunemente utilizzato per verificare le impostazioni di configurazione e le
        variabili predefinite disponibili in un dato sistema.
      – phpinfo() è utile come strumento di debug poichè visualizza tutti i dati EGPCS
        (Environment, GET, POST, Cookie, Server).




                                                                       gianfrasoft.wordpress.com - 2008
PHP5: Sintassi

•   Per inserire il codice PHP all’interno delle pagine web (HTML) si utilizzano
    speciali tag:
     –   <?php ... ?> (oppure <? ... ?>)                                              (il più usato)
     –   <% ...   %>                                                    (da abilitare in php.ini)
     –   <SCRIPT LANGUAGE="PHP"> ... </SCRIPT>
     (quest’ultimo può confondere poiché è utilizzato per i linguaggi client-side!)




    <html>
       <head>
         <title>Ciao mondo!</title>
       </head>
       <body>
    <?php
    // Questo è codice PHP racchiuso tra i tag "classici"
    print "<hl>Ciao mondo!</hl>";
    ?>
       </body>
    </html>

                                                                                  gianfrasoft.wordpress.com - 2008
PHP5: Commenti

•   I commenti sono indispensabili per una programmazione chiara degli script
    PHP:




    <?php
    /*
     * Questo è un commento stile C
     */

    // Questo è un commento
    // stile C++

    # Questo è un commento
    # stile Perl
    ?>

                                                            gianfrasoft.wordpress.com - 2008
PHP5: Variabili / 1

•    In PHP il nome di una variabile può contenere solo caratteri alfanumerici e
     l’underscore (_).
•    L’assegnazione del valore ad una variabile avviene mediante l’operatore =.
•    Le variabili vengono generate automaticamente nell’ambito della prima
     assegnazione (dichiarazione implicita).
•    In PHP valgono le regole della tipizzazione debole, ovvero il tipo della variabile
     viene determinato alla prima assegnazione di un valore, oppure mediante
     conversioni implicite, conversioni esplicite o casting.


    // Assegnazione di una viariabile
    $variabile = "valore";
    print($variabile) // stampa “valore"       // Una variabile dinamica
                                               $tavola = "bicchiere";
    // Casting esplicito                       $$tavola = "acqua";
                                               print($bicchiere); // stampa "acqua"
    $variabile = "5";
    print((int)$variabile) // stampa 5


                                                                 gianfrasoft.wordpress.com - 2008
PHP5: Variabili / 2

•    La funzione isset(var) restituisce vero (TRUE) se la variabile esiste, falso
     (FALSE) in caso contrario.
•    La funzione empty(var) restituisce TRUE se la variabile ha valore nullo,
     FALSE in caso contrario.
•    L’istruzione uset(var) distrugge la variabile specificata.

    // $n non esiste
    if (!isset($n)) { print '$n non esiste <br>'; }
    if (empty($n)) { print '$n è vuota <br>'; }

    $m = $n + 5; // $m vale 5
    print '$m vale '.$m.' <br>';

    //   ora $n esiste
    $n   = 1;
    if   (isset($n)) { print 'ora $n esiste <br>'; }
    if   (empty($n)) { print 'ma $n è ancora vuota <br>'; }

    unset($n);

    // ora $n NON esiste
    if (!isset($n)) { print 'ora $n NON esiste <br>'; }


                                                              gianfrasoft.wordpress.com - 2008
PHP5: Costanti

•   Le costanti vengono impostate manualmente usando l'istruzione define().
•   Per controllare che una costante sia definita effettivamente è necessario
    utilizzare la funzione defined(), considerando il solo argomento che identifica il
    nome della costante da controllare.


    // definisco una costante
    define("PROVA", "Valore della costante PROVA.");

    if (defined("PROVA"))
        print PROVA;




                                                                 gianfrasoft.wordpress.com - 2008
PHP5: Tipi di dati / 1

•   I tipi in PHP si dividono in:
     –   Tipi semplici: booleani, interi, numeri a virgola mobile, stringhe.
     –   Tipi composti: array, oggetti.

                                                          $a = 2.34;
     –   Le variabili non vanno dichiarate                $b = "Ciao mondo";
                                                          $c = 3;



     –   La conversione di tipo è
                                                           $pigreco = 3 + 0.1415;
         automatica

     –   I tipi vengono assegnati per
                                                         $sub = substr(20340, 2, 2);
         contesto.                                       $sub = $sub + 5;
                                                         print("sub vale $sub");
                                                         // output: sub vale 39



                                                                          gianfrasoft.wordpress.com - 2008
PHP5: Tipi di dati / 2


•   Per determinare il tipo di una variabile:
     –   gettype(var) restituisce una descrizione del tipo della variabile.

     –   Per ogni tipo è definita una funzione predicato che restituisce TRUE se
         l'argomento è del tipo in questione:
           •   is_bool

           •   is_int

           •   is_string

           •   …

           La lista completa è al sito: http://hu.php.net/manual/it/ref.var.php

     –   Queste funzioni sono molto utili per un efficace filtraggio dell’input ai fini della
         gestione della sicurezza.




                                                                                  gianfrasoft.wordpress.com - 2008
PHP5: Tipo boolean


•   Una variabile booleana può assumere solo due valori di verità: TRUE e
    FALSE (valori costanti).




    // Creo due variabili
    $a = TRUE;
    $b = 75;

    // L'istruzione seguente stampa "$a è bool"
    if (is_bool($a)) echo '$a è bool ';
    else echo '$a non è bool ';

    // Questa invece stampa "$b non è bool"
    if (is_bool($b)) echo '$b è bool ';
    else echo '$b non è bool ';



                                                        gianfrasoft.wordpress.com - 2008
PHP5: Tipo stringa


•   Una stringa, è una sequenza di caratteri.

•   Una lista di tutte le funzioni per l’analisi e la manipolazione delle stringhe in
    PHP è alla pagina:

    http://it2.php.net/manual/it/ref.strings.php

    in particolare la funzione htmlspecialchars() è molto utile per il filtraggio
    dell’input in ambito di gestione della sicurezza delle pagine PHP.



    // Una stringa costante
    $mio_nome = "Gianfranco";

    // Una stringa vuota
    $vuota = "";



                                                                 gianfrasoft.wordpress.com - 2008
PHP5: Interpolazione


•   Le stringhe racchiuse da apici singoli rappresentano esattamente ciò che
    esse contengono.
•   Le stringhe fra apici doppi attuano una interpolazione dei dati:
     – I nomi delle variabili che cominciano per $ vengono sostituite con il valore delle
       variabili dopo che questo è stato convertito in tipo stringa.
     – Sequenze di caratteri che cominciano con il backslash (), come n, t, r, …
       vengono sostituite con i corrispondenti caratteri speciali.
     – Sequenze di caratteri $, " e  causano rispettivamente la stampa dei caratteri
       $, " e  .




$a = “primo";                                               primo,,“secondo"+2.2
$b = “secondo";
$c = .22e+1; // notazione esponenziale
print ("$a,$terzo,"$b"+$c");


                                                                    gianfrasoft.wordpress.com - 2008
PHP5: Tipo array / 1


•   Un array è una collezione di valori individuati da un nome e da un indice.

•   L'indice può essere un numero intero ma anche una stringa: nel secondo
    caso l'array si definisce associativo.

•   in PHP gli elementi di un array possono essere di tipi diversi, anche array.
    Un array che contiene altri array è difatti un array multidimensionale.




                                                               gianfrasoft.wordpress.com - 2008
PHP5: Tipo array / 2


•   Un array può essere creato utilizzando il costrutto array() oppure lo si può
    creare implicitamente, aggiungendovi elementi.

        $lista = array("mele", "pere", "pane", "latte");


    $lista[0]   =   "mele";                        $lista[]   =   "mele";
    $lista[1]   =   "pere";                        $lista[]   =   "pere";
    $lista[2]   =   "pane";                        $lista[]   =   "pane";
    $lista[3]   =   "latte";                       $lista[]   =   "latte";



•   Nel caso di un array associativo:
        $lista_della_spesa = array("primo" => "pasta",
        "secondo" => "carne",
        "contorno" => "insalata"); // nota la variabile autoesplicativa


    $lista_della_spesa["primo"] = "pasta";
    $lista_della_spesa["secondo"] = "carne";
    $lista_della_spesa["contorno"] = "insalata";
                                                              gianfrasoft.wordpress.com - 2008
PHP5: Array multidimensionali


•   Un array non è vincolato a contenere informazioni dello stesso tipo. Neppure
    se si tratta di un array multidimensionale.
•   L’accesso ai dati di un array multidimensionale si attua indicando in sequenza
    gli indici dell’array principale e dell’array interno: ciò ricorsivamente, per quanti
    possono essere i livelli di annidamento dell’array.



// Un array di quattro elementi di tipo diverso
$anagrafici = array("Gianfranco
Fedele", TRUE, array(5, 3, 1973));

// Questa istruzione stampa "Gianfranco Fedele";
echo $anagrafici[0];

echo "<br>";

// Questa stampa il numero 1973
echo $anagrafici[2][2];

                                                                   gianfrasoft.wordpress.com - 2008
PHP5: Tipo object

•   PHP supporta il paradigma di programmazione a oggetti mediante il tipo
    object per le istanze di classi PHP.

     – La funzione is_object(var), restituisce TRUE se è un oggetto e FALSE in
       caso contrario.

     – La funzione gettype(var), data una variabile di tipo object restituisce la
       stringa object.

•   PHP è un linguaggio con estensioni per la programmazione ad oggetti, ma
    non è un linguaggio ad oggetti “puro” come Java.




                                                              gianfrasoft.wordpress.com - 2008
PHP5: Casting e conversione


•    La conversione dei tipi in PHP nella maggior parte dei casi avviene in modo
     implicito e trasparente: l'interprete PHP, in base al contesto, stabilisce il tipo
     da assegnare alle variabili.

•    È comunque possibile operare delle conversioni esplicite utilizzando le
     funzioni (intval(), strval(), …) oppure mediante il casting:




    $a = 10;       // $a e' una variabile intera e vale 10
    $b = $a + 1.5; // $b e' un numero in virgola mobile (11.5)
    $c = "5+$a";   // $c e' una stringa ("5+10")

    echo (int)$b; // Adesso $b è di tipo int e vale 11 (parte intera di $b)




                                                                  gianfrasoft.wordpress.com - 2008
PHP5: Operatori aritmetici


•   Sono gli operatori delle operazioni aritmetiche basilari.

                 Esempio       Risultato...
                 $a + $b       La somma di $a e $b
                 $a - $b       La differenza fra $a e $b
                 $a * $b       Il prodotto di $a e $b
                 $a / $b       Il rapporto tra $a e $b
                 $a % $b       Il resto della divisione di $a per $b



                       // Divisione
                       $dividendo = 15;
                       $divisore = 2;
                       // $rapporto vale 7.5
                       $rapporto = $dividendo / $divisore;
                       // $resto vale 1;
                       $resto = $dividendo % $divisore;

                                                                   gianfrasoft.wordpress.com - 2008
PHP5: Concatenazione di stringhe


•     L’operatore di concatenazione delle stringhe è “.“


    // nome e cognome
    $nome = "Gianfranco";
    $cognome = "Fedele";

    // Concatenazione
    $nome_completo = $nome . " " . $cognome;




•     Lo stesso risultato è possibile mediante l’interpolazione nelle stringhe:

    $nome = "Gianfranco";
    $cognome = "Fedele";
    $nome_completo = "$nome $cognome";



                                                                  gianfrasoft.wordpress.com - 2008
PHP5: Operatori di confronto

•   Tra gli operatori di confronto classici, si noti la differenza tra gli operatori:

    == e ===.



            Esempio          Restituisce TRUE se...
            $a == $b         $a e $b sono uguali (stesso valore)
            $a === $b        $a e $b sono uguali (stesso valore e tipo)
            $a != $b         $a e $b sono diversi
            $a < $b          $a è minore di $b
            $a <= $b         $a è minore o uguale di $b
            $a > $b          $a è maggiore di $b
            $a >= $b         $a è maggiore o uguale di $b



                                                                     gianfrasoft.wordpress.com - 2008
PHP5: Operatori logici

•   Gli operatori logici consentono di legare tra loro diverse condizioni,
    costruendone di nuove.




    Operatore     Esempio                       Restituisce TRUE se…
    not           !$a                           $a è falsa
    and           $a && $b ($a and $b )         $a e $b sono entrambe vere
    or            $a || $b ($a or $b )          almeno una tra $a e $b è vera
    xor           $a xor $b                     solo una tra $a e $b è vera




                                                                 gianfrasoft.wordpress.com - 2008
PHP5: Operatori combinati

•   L‘opertore = non è l’unico operatore di assegnazione disponibile in PHP.


                $somma = $a + $b;
                $frase = "La somma e' pari a $somma";




•   Esistono operatori di assegnazione detti operatori combinati:

     Esempio        Risultato              Esempio    Risultato
     $a += $b       $a = $a     +   $b     $n++       incrementa (decrementa) $n
     $a -= $b       $a = $a     -   $b     $n--       di uno e ritorna il valore
     $a *= $b       $a = $a     *   $b     ++$n       ritorna $n e incrementa
     $a /= $b       $a = $a     /   $b     --$n       (decrementa) di uno
     $a %= $b       $a = $a     %   $b
     $a .= $b       $a = $a     .   $b
                                                              gianfrasoft.wordpress.com - 2008
PHP5
    prima parte - FINE

       Gianfranco Fedele
      Analista programmatore

     gianfrasoft@gmail.com
   gianfrasoft.wordpress.com
www.linkedin.com/in/gianfrasoft

Contenu connexe

Tendances

[BASH] Shell Scripting [ITA]
[BASH] Shell Scripting [ITA][BASH] Shell Scripting [ITA]
[BASH] Shell Scripting [ITA]Matteo Collica
 
Introduzione al linguaggio PHP
Introduzione al linguaggio PHPIntroduzione al linguaggio PHP
Introduzione al linguaggio PHPextrategy
 
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client
Laboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato ClientLaboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato Client
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Clientguestbe916c
 
Seminario team working - 21-1-2015
Seminario team working - 21-1-2015Seminario team working - 21-1-2015
Seminario team working - 21-1-2015Alessandro Loffredo
 
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore RomeoHTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeomarcocasario
 
Lezione 11: Accesso ai RESTful Web Services in Java
Lezione 11: Accesso ai RESTful Web Services in JavaLezione 11: Accesso ai RESTful Web Services in Java
Lezione 11: Accesso ai RESTful Web Services in JavaAndrea Della Corte
 
Html5 e css3 nuovi strumenti per un nuovo web
Html5 e css3 nuovi strumenti per un nuovo webHtml5 e css3 nuovi strumenti per un nuovo web
Html5 e css3 nuovi strumenti per un nuovo webMassimo Bonanni
 
Lezione 9: Web Service in Java
Lezione 9: Web Service in JavaLezione 9: Web Service in Java
Lezione 9: Web Service in JavaAndrea Della Corte
 
High Performance Web Apps con PHP e Symfony 2
High Performance Web Apps con PHP  e Symfony 2High Performance Web Apps con PHP  e Symfony 2
High Performance Web Apps con PHP e Symfony 2Giorgio Cefaro
 
php: back to basics
php: back to basicsphp: back to basics
php: back to basicsFabio Mora
 
PHP: strutture di controllo e funzioni
PHP: strutture di controllo e funzioniPHP: strutture di controllo e funzioni
PHP: strutture di controllo e funzioniextrategy
 
Modern web development with python and Web2py
Modern web development with python and Web2pyModern web development with python and Web2py
Modern web development with python and Web2pyDavide Marzioni
 
Sistemi Operativi: Il kernel linux - Lezione 06
Sistemi Operativi: Il kernel linux - Lezione 06Sistemi Operativi: Il kernel linux - Lezione 06
Sistemi Operativi: Il kernel linux - Lezione 06Majong DevJfu
 

Tendances (19)

[BASH] Shell Scripting [ITA]
[BASH] Shell Scripting [ITA][BASH] Shell Scripting [ITA]
[BASH] Shell Scripting [ITA]
 
Introduzione al linguaggio PHP
Introduzione al linguaggio PHPIntroduzione al linguaggio PHP
Introduzione al linguaggio PHP
 
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client
Laboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato ClientLaboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato Client
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client
 
Seminario team working - 21-1-2015
Seminario team working - 21-1-2015Seminario team working - 21-1-2015
Seminario team working - 21-1-2015
 
PHP 7 - benvenuto al futuro
PHP 7 - benvenuto al futuroPHP 7 - benvenuto al futuro
PHP 7 - benvenuto al futuro
 
Corso di php01
Corso di php01Corso di php01
Corso di php01
 
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore RomeoHTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
 
Lezione 11: Accesso ai RESTful Web Services in Java
Lezione 11: Accesso ai RESTful Web Services in JavaLezione 11: Accesso ai RESTful Web Services in Java
Lezione 11: Accesso ai RESTful Web Services in Java
 
Html5 e css3 nuovi strumenti per un nuovo web
Html5 e css3 nuovi strumenti per un nuovo webHtml5 e css3 nuovi strumenti per un nuovo web
Html5 e css3 nuovi strumenti per un nuovo web
 
Asp net (versione 1 e 2)
Asp net (versione 1 e 2)Asp net (versione 1 e 2)
Asp net (versione 1 e 2)
 
Lezione 9: Web Service in Java
Lezione 9: Web Service in JavaLezione 9: Web Service in Java
Lezione 9: Web Service in Java
 
High Performance Web Apps con PHP e Symfony 2
High Performance Web Apps con PHP  e Symfony 2High Performance Web Apps con PHP  e Symfony 2
High Performance Web Apps con PHP e Symfony 2
 
php: back to basics
php: back to basicsphp: back to basics
php: back to basics
 
Net core base
Net core baseNet core base
Net core base
 
PHP: strutture di controllo e funzioni
PHP: strutture di controllo e funzioniPHP: strutture di controllo e funzioni
PHP: strutture di controllo e funzioni
 
Modern web development with python and Web2py
Modern web development with python and Web2pyModern web development with python and Web2py
Modern web development with python and Web2py
 
Laravel 7 REST API
Laravel 7 REST APILaravel 7 REST API
Laravel 7 REST API
 
Sistemi Operativi: Il kernel linux - Lezione 06
Sistemi Operativi: Il kernel linux - Lezione 06Sistemi Operativi: Il kernel linux - Lezione 06
Sistemi Operativi: Il kernel linux - Lezione 06
 
Bash Scripting
Bash ScriptingBash Scripting
Bash Scripting
 

Similaire à Gianfrasoft Corso Di Php Parte 1

Laboratorio Di Basi Di Dati 09 Il Linguaggio P H P
Laboratorio Di  Basi Di  Dati 09  Il Linguaggio  P H PLaboratorio Di  Basi Di  Dati 09  Il Linguaggio  P H P
Laboratorio Di Basi Di Dati 09 Il Linguaggio P H Pguestbe916c
 
Sviluppo web dall'antichità all'avanguardia e ritorno
Sviluppo web  dall'antichità all'avanguardia e ritornoSviluppo web  dall'antichità all'avanguardia e ritorno
Sviluppo web dall'antichità all'avanguardia e ritornolordarthas
 
Sviluppo web con Ruby on Rails
Sviluppo web con Ruby on RailsSviluppo web con Ruby on Rails
Sviluppo web con Ruby on Railsjekil
 
Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.
Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.
Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.Stefano Bianchini
 
Maria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazioneMaria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazioneMaria Grazia Maffucci
 
Dominare il codice legacy
Dominare il codice legacyDominare il codice legacy
Dominare il codice legacyTommaso Torti
 
Come sviluppo le applicazioni web
Come sviluppo le applicazioni webCome sviluppo le applicazioni web
Come sviluppo le applicazioni webAndrea Lazzarotto
 
Componenti dello stack LAMP - PHP, il linguaggio, l'installazione - MySQL, in...
Componenti dello stack LAMP - PHP, il linguaggio, l'installazione - MySQL, in...Componenti dello stack LAMP - PHP, il linguaggio, l'installazione - MySQL, in...
Componenti dello stack LAMP - PHP, il linguaggio, l'installazione - MySQL, in...Fulvio Corno
 
Creare un proprio linguaggio di programmazione per il web e applicazioni desk...
Creare un proprio linguaggio di programmazione per il web e applicazioni desk...Creare un proprio linguaggio di programmazione per il web e applicazioni desk...
Creare un proprio linguaggio di programmazione per il web e applicazioni desk...Codemotion
 
Javascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerJavascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerMatteo Magni
 
Pietro Brambati: PHP e la piattaforma Microsoft
Pietro Brambati: PHP e la piattaforma MicrosoftPietro Brambati: PHP e la piattaforma Microsoft
Pietro Brambati: PHP e la piattaforma MicrosoftFrancesco Fullone
 
Introduzione alla localizzazione web
Introduzione alla localizzazione webIntroduzione alla localizzazione web
Introduzione alla localizzazione webQabiria
 
Primo Incontro Con Scala
Primo Incontro Con ScalaPrimo Incontro Con Scala
Primo Incontro Con ScalaFranco Lombardo
 
JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)jampslide
 

Similaire à Gianfrasoft Corso Di Php Parte 1 (20)

Laboratorio Di Basi Di Dati 09 Il Linguaggio P H P
Laboratorio Di  Basi Di  Dati 09  Il Linguaggio  P H PLaboratorio Di  Basi Di  Dati 09  Il Linguaggio  P H P
Laboratorio Di Basi Di Dati 09 Il Linguaggio P H P
 
Web frameworks
Web frameworksWeb frameworks
Web frameworks
 
Sviluppo web dall'antichità all'avanguardia e ritorno
Sviluppo web  dall'antichità all'avanguardia e ritornoSviluppo web  dall'antichità all'avanguardia e ritorno
Sviluppo web dall'antichità all'avanguardia e ritorno
 
Sviluppo web con Ruby on Rails
Sviluppo web con Ruby on RailsSviluppo web con Ruby on Rails
Sviluppo web con Ruby on Rails
 
Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.
Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.
Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.
 
Novità di Asp.Net 4.0
Novità di Asp.Net 4.0Novità di Asp.Net 4.0
Novità di Asp.Net 4.0
 
Html5 e PHP
Html5 e PHPHtml5 e PHP
Html5 e PHP
 
Maria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazioneMaria Grazia Maffucci- programmazione presentazione
Maria Grazia Maffucci- programmazione presentazione
 
Dominare il codice legacy
Dominare il codice legacyDominare il codice legacy
Dominare il codice legacy
 
Come sviluppo le applicazioni web
Come sviluppo le applicazioni webCome sviluppo le applicazioni web
Come sviluppo le applicazioni web
 
Linux Day 2009 LAMP HowTo
Linux Day 2009 LAMP HowToLinux Day 2009 LAMP HowTo
Linux Day 2009 LAMP HowTo
 
Componenti dello stack LAMP - PHP, il linguaggio, l'installazione - MySQL, in...
Componenti dello stack LAMP - PHP, il linguaggio, l'installazione - MySQL, in...Componenti dello stack LAMP - PHP, il linguaggio, l'installazione - MySQL, in...
Componenti dello stack LAMP - PHP, il linguaggio, l'installazione - MySQL, in...
 
Corso Javascript
Corso JavascriptCorso Javascript
Corso Javascript
 
Php for ASP.NET Developers
Php for ASP.NET DevelopersPhp for ASP.NET Developers
Php for ASP.NET Developers
 
Creare un proprio linguaggio di programmazione per il web e applicazioni desk...
Creare un proprio linguaggio di programmazione per il web e applicazioni desk...Creare un proprio linguaggio di programmazione per il web e applicazioni desk...
Creare un proprio linguaggio di programmazione per il web e applicazioni desk...
 
Javascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerJavascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesigner
 
Pietro Brambati: PHP e la piattaforma Microsoft
Pietro Brambati: PHP e la piattaforma MicrosoftPietro Brambati: PHP e la piattaforma Microsoft
Pietro Brambati: PHP e la piattaforma Microsoft
 
Introduzione alla localizzazione web
Introduzione alla localizzazione webIntroduzione alla localizzazione web
Introduzione alla localizzazione web
 
Primo Incontro Con Scala
Primo Incontro Con ScalaPrimo Incontro Con Scala
Primo Incontro Con Scala
 
JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)
 

Gianfrasoft Corso Di Php Parte 1

  • 1. PHP5 prima parte - i fondamenti del linguaggio Gianfranco Fedele Analista programmatore gianfrasoft@gmail.com gianfrasoft.wordpress.com www.linkedin.com/in/gianfrasoft
  • 2. PHP5: Introduzione a PHP • È un linguaggio di programmazione di tipo scripting (come, Bash, Javascript, Perl, …), ed è caratterizzato da: – Codice iterpretato (non compilato). – Tipizzazione debole (casting implicito). – È HTML embedded. – È un linguaggio procedurale con estensioni ad oggetti. • È un linguaggio di programmazione utilizzato per lo sviluppo di pagine web dinamiche “lato server”. gianfrasoft.wordpress.com - 2008
  • 3. PHP5: Paradigma Web con PHP / 1 Web Server Browser client page HTTP Server Richiesta GET/POST PHP files DB • Il client richiede al server di elaborare una pagina HTML contenente script PHP. • L'esecuzione ha come risultato una pagina di solo HTML. • Il server invia la pagina ottenuta al browser per la visualizzazione. gianfrasoft.wordpress.com - 2008
  • 4. PHP5: Paradigma Web con PHP / 2 • Dinamicità “lato client” – Presentazione dinamica: interazione con i contenuti ricevuti dal server. – Tecnologie: • Javascript + DOM. • Applet Java. • Flash. • ... gianfrasoft.wordpress.com - 2008
  • 5. PHP5: Paradigma Web con PHP / 3 • Dinamicità “lato server” – Possibilità di generare tutti i contenuti dinamicamente • prelevando informazioni da diverse sorgenti (file, DB, Internet, ...). • processando testo e immagini. • gestendo profili e sessioni. • ... – Tecnologie: • Common Gateway Interface (CGI). • Scriptlet (PHP, Perl, ASP, JSP, …). • Linguaggi HTML-Embedded (PHP, ASP, JSP) gianfrasoft.wordpress.com - 2008
  • 6. PHP5: Il Web 2.0 - cenni • Ajax - Asynchronous JavaScript and XML utilizza una combinazione di: – HTML (o XHTML) e CSS per il markup e lo stile; – DOM (Document Object Model) manipolato attraverso JavaScript. – l'oggetto XMLHttpRequest per l'interscambio asincrono dei dati tra il browser dell'utente e il web server. – XML come formato di scambio dei dati, anche se di fatto qualunque formato può essere utilizzato. – PHP o qualsiasi altra tecnologia per il processamento dei dati lato server gianfrasoft.wordpress.com - 2008
  • 7. PHP5: Caratteristiche di PHP • Punti di forza del PHP: – È semplice (HTML embedded). – È open source (sotto licenza GPL). – È caratterizzato da buone prestazioni – Grazie a Zend Engine 2 introduce un nuovo modello di programmazione ad oggetti, per l’interazione con file XML e per il supporto dei Web Services – È fornito di molte librerie per: • Processamento immagini (GD) • Connessione ai database (MySQL, PostgreSQL, Oracle, ...) • Parser XML anche per processori XSLT • Compressione dati • SSL • Generazione file PDF • Web Services (SOAP, XML-RPC, ...) • ... – Sono disponibili archivi di estensioni e librerie PHP (PEAR, …) – Consente la realizzazione di applicazioni aziendali gianfrasoft.wordpress.com - 2008
  • 8. PHP5: phpinfo() • Per verificare che PHP sia correttamente installato e funzionante sul server: – Interrogare un semplice script contentente: <?php phpinfo() ?> – Questo script visualizza molte informazioni sullo stato corrente del PHP Queste includono informazioni sulle opzioni di compilazione del PHP, sui moduli, la versione di PHP, informazioni sul server e sull'ambiente (se compilato come modulo), l'ambiente PHP, la versione di OS, percorsi, valori delle configurazioni base e attuali, intestazioni HTTP e la licenza del PHP. – Dato che ogni sistema ha una configurazione differente, phpinfo() viene comunemente utilizzato per verificare le impostazioni di configurazione e le variabili predefinite disponibili in un dato sistema. – phpinfo() è utile come strumento di debug poichè visualizza tutti i dati EGPCS (Environment, GET, POST, Cookie, Server). gianfrasoft.wordpress.com - 2008
  • 9. PHP5: Sintassi • Per inserire il codice PHP all’interno delle pagine web (HTML) si utilizzano speciali tag: – <?php ... ?> (oppure <? ... ?>) (il più usato) – <% ... %> (da abilitare in php.ini) – <SCRIPT LANGUAGE="PHP"> ... </SCRIPT> (quest’ultimo può confondere poiché è utilizzato per i linguaggi client-side!) <html> <head> <title>Ciao mondo!</title> </head> <body> <?php // Questo è codice PHP racchiuso tra i tag "classici" print "<hl>Ciao mondo!</hl>"; ?> </body> </html> gianfrasoft.wordpress.com - 2008
  • 10. PHP5: Commenti • I commenti sono indispensabili per una programmazione chiara degli script PHP: <?php /* * Questo è un commento stile C */ // Questo è un commento // stile C++ # Questo è un commento # stile Perl ?> gianfrasoft.wordpress.com - 2008
  • 11. PHP5: Variabili / 1 • In PHP il nome di una variabile può contenere solo caratteri alfanumerici e l’underscore (_). • L’assegnazione del valore ad una variabile avviene mediante l’operatore =. • Le variabili vengono generate automaticamente nell’ambito della prima assegnazione (dichiarazione implicita). • In PHP valgono le regole della tipizzazione debole, ovvero il tipo della variabile viene determinato alla prima assegnazione di un valore, oppure mediante conversioni implicite, conversioni esplicite o casting. // Assegnazione di una viariabile $variabile = "valore"; print($variabile) // stampa “valore" // Una variabile dinamica $tavola = "bicchiere"; // Casting esplicito $$tavola = "acqua"; print($bicchiere); // stampa "acqua" $variabile = "5"; print((int)$variabile) // stampa 5 gianfrasoft.wordpress.com - 2008
  • 12. PHP5: Variabili / 2 • La funzione isset(var) restituisce vero (TRUE) se la variabile esiste, falso (FALSE) in caso contrario. • La funzione empty(var) restituisce TRUE se la variabile ha valore nullo, FALSE in caso contrario. • L’istruzione uset(var) distrugge la variabile specificata. // $n non esiste if (!isset($n)) { print '$n non esiste <br>'; } if (empty($n)) { print '$n è vuota <br>'; } $m = $n + 5; // $m vale 5 print '$m vale '.$m.' <br>'; // ora $n esiste $n = 1; if (isset($n)) { print 'ora $n esiste <br>'; } if (empty($n)) { print 'ma $n è ancora vuota <br>'; } unset($n); // ora $n NON esiste if (!isset($n)) { print 'ora $n NON esiste <br>'; } gianfrasoft.wordpress.com - 2008
  • 13. PHP5: Costanti • Le costanti vengono impostate manualmente usando l'istruzione define(). • Per controllare che una costante sia definita effettivamente è necessario utilizzare la funzione defined(), considerando il solo argomento che identifica il nome della costante da controllare. // definisco una costante define("PROVA", "Valore della costante PROVA."); if (defined("PROVA")) print PROVA; gianfrasoft.wordpress.com - 2008
  • 14. PHP5: Tipi di dati / 1 • I tipi in PHP si dividono in: – Tipi semplici: booleani, interi, numeri a virgola mobile, stringhe. – Tipi composti: array, oggetti. $a = 2.34; – Le variabili non vanno dichiarate $b = "Ciao mondo"; $c = 3; – La conversione di tipo è $pigreco = 3 + 0.1415; automatica – I tipi vengono assegnati per $sub = substr(20340, 2, 2); contesto. $sub = $sub + 5; print("sub vale $sub"); // output: sub vale 39 gianfrasoft.wordpress.com - 2008
  • 15. PHP5: Tipi di dati / 2 • Per determinare il tipo di una variabile: – gettype(var) restituisce una descrizione del tipo della variabile. – Per ogni tipo è definita una funzione predicato che restituisce TRUE se l'argomento è del tipo in questione: • is_bool • is_int • is_string • … La lista completa è al sito: http://hu.php.net/manual/it/ref.var.php – Queste funzioni sono molto utili per un efficace filtraggio dell’input ai fini della gestione della sicurezza. gianfrasoft.wordpress.com - 2008
  • 16. PHP5: Tipo boolean • Una variabile booleana può assumere solo due valori di verità: TRUE e FALSE (valori costanti). // Creo due variabili $a = TRUE; $b = 75; // L'istruzione seguente stampa "$a è bool" if (is_bool($a)) echo '$a è bool '; else echo '$a non è bool '; // Questa invece stampa "$b non è bool" if (is_bool($b)) echo '$b è bool '; else echo '$b non è bool '; gianfrasoft.wordpress.com - 2008
  • 17. PHP5: Tipo stringa • Una stringa, è una sequenza di caratteri. • Una lista di tutte le funzioni per l’analisi e la manipolazione delle stringhe in PHP è alla pagina: http://it2.php.net/manual/it/ref.strings.php in particolare la funzione htmlspecialchars() è molto utile per il filtraggio dell’input in ambito di gestione della sicurezza delle pagine PHP. // Una stringa costante $mio_nome = "Gianfranco"; // Una stringa vuota $vuota = ""; gianfrasoft.wordpress.com - 2008
  • 18. PHP5: Interpolazione • Le stringhe racchiuse da apici singoli rappresentano esattamente ciò che esse contengono. • Le stringhe fra apici doppi attuano una interpolazione dei dati: – I nomi delle variabili che cominciano per $ vengono sostituite con il valore delle variabili dopo che questo è stato convertito in tipo stringa. – Sequenze di caratteri che cominciano con il backslash (), come n, t, r, … vengono sostituite con i corrispondenti caratteri speciali. – Sequenze di caratteri $, " e causano rispettivamente la stampa dei caratteri $, " e . $a = “primo"; primo,,“secondo"+2.2 $b = “secondo"; $c = .22e+1; // notazione esponenziale print ("$a,$terzo,"$b"+$c"); gianfrasoft.wordpress.com - 2008
  • 19. PHP5: Tipo array / 1 • Un array è una collezione di valori individuati da un nome e da un indice. • L'indice può essere un numero intero ma anche una stringa: nel secondo caso l'array si definisce associativo. • in PHP gli elementi di un array possono essere di tipi diversi, anche array. Un array che contiene altri array è difatti un array multidimensionale. gianfrasoft.wordpress.com - 2008
  • 20. PHP5: Tipo array / 2 • Un array può essere creato utilizzando il costrutto array() oppure lo si può creare implicitamente, aggiungendovi elementi. $lista = array("mele", "pere", "pane", "latte"); $lista[0] = "mele"; $lista[] = "mele"; $lista[1] = "pere"; $lista[] = "pere"; $lista[2] = "pane"; $lista[] = "pane"; $lista[3] = "latte"; $lista[] = "latte"; • Nel caso di un array associativo: $lista_della_spesa = array("primo" => "pasta", "secondo" => "carne", "contorno" => "insalata"); // nota la variabile autoesplicativa $lista_della_spesa["primo"] = "pasta"; $lista_della_spesa["secondo"] = "carne"; $lista_della_spesa["contorno"] = "insalata"; gianfrasoft.wordpress.com - 2008
  • 21. PHP5: Array multidimensionali • Un array non è vincolato a contenere informazioni dello stesso tipo. Neppure se si tratta di un array multidimensionale. • L’accesso ai dati di un array multidimensionale si attua indicando in sequenza gli indici dell’array principale e dell’array interno: ciò ricorsivamente, per quanti possono essere i livelli di annidamento dell’array. // Un array di quattro elementi di tipo diverso $anagrafici = array("Gianfranco Fedele", TRUE, array(5, 3, 1973)); // Questa istruzione stampa "Gianfranco Fedele"; echo $anagrafici[0]; echo "<br>"; // Questa stampa il numero 1973 echo $anagrafici[2][2]; gianfrasoft.wordpress.com - 2008
  • 22. PHP5: Tipo object • PHP supporta il paradigma di programmazione a oggetti mediante il tipo object per le istanze di classi PHP. – La funzione is_object(var), restituisce TRUE se è un oggetto e FALSE in caso contrario. – La funzione gettype(var), data una variabile di tipo object restituisce la stringa object. • PHP è un linguaggio con estensioni per la programmazione ad oggetti, ma non è un linguaggio ad oggetti “puro” come Java. gianfrasoft.wordpress.com - 2008
  • 23. PHP5: Casting e conversione • La conversione dei tipi in PHP nella maggior parte dei casi avviene in modo implicito e trasparente: l'interprete PHP, in base al contesto, stabilisce il tipo da assegnare alle variabili. • È comunque possibile operare delle conversioni esplicite utilizzando le funzioni (intval(), strval(), …) oppure mediante il casting: $a = 10; // $a e' una variabile intera e vale 10 $b = $a + 1.5; // $b e' un numero in virgola mobile (11.5) $c = "5+$a"; // $c e' una stringa ("5+10") echo (int)$b; // Adesso $b è di tipo int e vale 11 (parte intera di $b) gianfrasoft.wordpress.com - 2008
  • 24. PHP5: Operatori aritmetici • Sono gli operatori delle operazioni aritmetiche basilari. Esempio Risultato... $a + $b La somma di $a e $b $a - $b La differenza fra $a e $b $a * $b Il prodotto di $a e $b $a / $b Il rapporto tra $a e $b $a % $b Il resto della divisione di $a per $b // Divisione $dividendo = 15; $divisore = 2; // $rapporto vale 7.5 $rapporto = $dividendo / $divisore; // $resto vale 1; $resto = $dividendo % $divisore; gianfrasoft.wordpress.com - 2008
  • 25. PHP5: Concatenazione di stringhe • L’operatore di concatenazione delle stringhe è “.“ // nome e cognome $nome = "Gianfranco"; $cognome = "Fedele"; // Concatenazione $nome_completo = $nome . " " . $cognome; • Lo stesso risultato è possibile mediante l’interpolazione nelle stringhe: $nome = "Gianfranco"; $cognome = "Fedele"; $nome_completo = "$nome $cognome"; gianfrasoft.wordpress.com - 2008
  • 26. PHP5: Operatori di confronto • Tra gli operatori di confronto classici, si noti la differenza tra gli operatori: == e ===. Esempio Restituisce TRUE se... $a == $b $a e $b sono uguali (stesso valore) $a === $b $a e $b sono uguali (stesso valore e tipo) $a != $b $a e $b sono diversi $a < $b $a è minore di $b $a <= $b $a è minore o uguale di $b $a > $b $a è maggiore di $b $a >= $b $a è maggiore o uguale di $b gianfrasoft.wordpress.com - 2008
  • 27. PHP5: Operatori logici • Gli operatori logici consentono di legare tra loro diverse condizioni, costruendone di nuove. Operatore Esempio Restituisce TRUE se… not !$a $a è falsa and $a && $b ($a and $b ) $a e $b sono entrambe vere or $a || $b ($a or $b ) almeno una tra $a e $b è vera xor $a xor $b solo una tra $a e $b è vera gianfrasoft.wordpress.com - 2008
  • 28. PHP5: Operatori combinati • L‘opertore = non è l’unico operatore di assegnazione disponibile in PHP. $somma = $a + $b; $frase = "La somma e' pari a $somma"; • Esistono operatori di assegnazione detti operatori combinati: Esempio Risultato Esempio Risultato $a += $b $a = $a + $b $n++ incrementa (decrementa) $n $a -= $b $a = $a - $b $n-- di uno e ritorna il valore $a *= $b $a = $a * $b ++$n ritorna $n e incrementa $a /= $b $a = $a / $b --$n (decrementa) di uno $a %= $b $a = $a % $b $a .= $b $a = $a . $b gianfrasoft.wordpress.com - 2008
  • 29. PHP5 prima parte - FINE Gianfranco Fedele Analista programmatore gianfrasoft@gmail.com gianfrasoft.wordpress.com www.linkedin.com/in/gianfrasoft