Introduction a Php

32
Introduction à PHP php-intro Internet et Education © TECFA 30/11/00 Introduction à PHP Code: php-intro Originaux url: http://tecfa.unige.ch/guides/tie/html/php-intro/php-intro.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-intro.pdf Auteurs et version Daniel K. Schneider - Vivian Synteta - Olivier Clavel • Version: 0.9 (modifié le 30/11/00) Prérequis: • Avoir une notion minimale de ce qu’est un langage de programmation • Connaître le langage HTML (simple HTML et formulaires pour plus tard) Module technique précédent: html-intro (HTML simple) Module technique précédent: html-forms (formulaires)

description

Introduction a PHP

Transcript of Introduction a Php

  • Introduction PHP php-intro

    In TECFA 30/11/00

    O

    A

    Pammationur plus tard)ternet et Education

    Introduction PHP Code: php-intro

    riginauxurl: http://tecfa.unige.ch/guides/tie/html/php-intro/php-intro.htmlurl: http://tecfa.unige.ch/guides/tie/pdf/files/php-intro.pdf

    uteurs et version Daniel K. Schneider - Vivian Synteta - Olivier Clavel Version: 0.9 (modifi le 30/11/00)

    rrequis: Avoir une notion minimale de ce quest un langage de progr Connatre le langage HTML (simple HTML et formulaires po

    Module technique prcdent: html-intro (HTML simple)Module technique prcdent: html-forms (formulaires)

    ../../html/html-forms/html-forms.html../../html/html-intro/html-intro.htmlhttp://tecfa.unige.ch/guides/tie/html/html-forms/html-forms.htmlhttp://tecfa.unige.ch/guides/tie/pdf/files/php-intro.pdfhttp://tecfa.unige.ch/tecfa-people/schneider.htmlhttp://tecfa.unige.ch/~paraskev/http://tecfa.unige.ch/~clavel/

  • Introduction PHP - . php-intro-2

    In TECFA 30/11/00

    Objectifs:ternet et Education

    Se familiariser avec le langage PHP

    1. Les variables

    2. Les structures de contrle (tests et boucles)

  • Introduction PHP - 1. Table des matires dtaille php-intro-3

    In TECFA 30/11/00

    1. Table des matires dtaille3456799

    1011111620232529293032ternet et Education

    1. Table des matires dtaille2. Gnralits

    2.1 Quelques features de PHP2.2 Intgration de HTML et de code PHP2.3 Sensibilisation Php: Inclusion de fichiers

    3. Introduction la programmation avec PHP3.1 Elments de programmation3.2 Ressources PHP on-line et conventions pour la Syntaxe3.3 Syntaxe de PHP3.4 Variables et assignation3.5 Simples expressions et oprateurs3.6 Slection (Conditions et tests)3.7 Fonctions PHP3.8 Boucles "for" et gnration HTML

    4. Conseils pratiques pour PHP4.1 Debugging4.2 PHP en "Stand-alone"4.3 Win95:

  • Introduction PHP - 2. Gnralits php-intro-4

    In TECFA 30/11/00

    2. Gnralits

    H) au dbut du WWW

    Duch of its syntax isP-specific features

    pers to write

    PTMLnuP pour excution

    B

    ternet et Education

    "PHP" veut dire aujourdhui Hypertext Preprocessorurl: http://tecfa.unige.ch/guides/php/

    istore: Conu comme Personal Home Page Generator (Php2/FI

    par Rasmus Lerdorf PHP 3 depuis fin 1997, PHP 4 depuis 1999

    finition officielle pour PHP 3.0 PHP Version 3.0 is an HTML-embedded scripting language. M

    borrowed from C, Java and Perl with a couple of unique PHthrown in. The goal of the language is to allow web develodynamically generated pages quickly.

    rincipe de base: Analogie avec JavaScript: on mlange du code PHP avec H mais cest le serveur qui lit la page et qui calcule le conte A Tecfa, tout fichier *.php est automatiquement pass PH

    AVANT dtre servi au client.uts:

    Cration de pages WWW dynamiquement construits Middleware le serveur et dautres programmes

    http://tecfa.unige.ch/guides/php/

  • Introduction PHP - 2. Gnralits php-intro-5

    In TECFA 30/11/00

    2.1 Quelques features de PHPD

    In

    IIS)puissante

    A, Microsoft, MySQL,

    s)

    apprendres, redirection)PDF, XML, GIF,...)

    A

    ternet et Education

    isponibilit freeware (open-source) cross-plateform (Unix et Win32)

    stallation peut tourner comme programme CGI comme module pour certains serveurs (par ex. Apache ou

    la version compile dans le serveur est plus rapide et plus comme interprteur de script stand-alone

    touts principaux trs bon support pour les bases de donnes (Oracle, Sybase

    Postgres, ODBC, etc.) bonne intgration avec le systme

    (fonctions OS et communication avec dautres programme langage de programmation complet permet de mixer HTML et code PHP, relativement facile support de fonctions Web (cookies, authentication, session support pour un grand nombre dautres librairies (LDAP,

    lternatives ASP (Microsoft) JSP (Java)

  • Introduction PHP - 2. Gnralits php-intro-6

    In TECFA 30/11/00

    2.2 Intgration de HTML et de code PHP interprter dans un

    IlL

    tion\n"); ?>

    Xhis\n"); ?>

    P

    instructions");ternet et Education

    Un marqueur spcial permet de dlimiter les parties de codedocument avant de le servir.

    existe 3 variantes (quivalentes pour HTML):a plus rpandue:

  • Introduction PHP - 2. Gnralits php-intro-7

    In TECFA 30/11/00

    2.3 Sensibilisation Php: Inclusion de fichiersurs fichiers. On peutuement dans tous les

    s simple.udes) ferait aussi

    I est value

    R est chargternet et Education

    PHP permet de composer une page HTML partir de plusieainsi dfinir une barre de menu centrale et linclure automatiqfichiers. .Cet exemple prsente une premire application de PHP tr enfin avec Apache, pas besoin de PHP, SSI (server side incl

    laffaire ...

    ncludepermet dinclure le contenu dun fichier au moment ou linstructionSyntaxe: include ("nom du fichier");Exemple: include("style.text");

    equirepermet dinclure le contenu dun fichier au moment o le fichier phpSyntaxe: require ("nom de fichier");Exemple: require("mes_fonctions.lib");

  • Introduction PHP - 2. Gnralits php-intro-8

    In TECFA 30/11/00

    Exemple 2-1: Inclusion de fichiers

    < <

    I

    Simple Include Demo

    n this file we include a style sheet and a footer. Look at the formatted source or the unformatted oneif you want to know how this is done.

    Yet another styled title bullet item bullet item

    ?* A footer */nclude("footer.text");> /HTML>

    http://tecfa.unige.ch/guides/php/examples/includes/

  • Introduction PHP - 3. Introduction la programmation avec PHP php-intro-9

    In TECFA 30/11/00

    3. Introduction la programmation avec PHP

    3

    de donnes

    es "classes" dans ce schmaternet et Education

    .1 Elments de programmation

    Figure 3-1: Programme = algorithme + structures

    Architecture dun programme simple

    variables

    simples arrays

    Note: il manque l

    dfinitions de fonctions

    instructions variables

    instructions (=statements)

    sont

    (invocation,assignation,rptition,slection,exception)

    paramtres

    donnes lments pour les algorithmes

  • Introduction PHP - 3. Introduction la programmation avec PHP php-intro-10

    In TECFA 30/11/00

    3.2 Ressources PHP on-line et conventions pour la SyntaxeC

    R

    /php/examples/

    onplacer

    re tel quelternet et Education

    onventions utilises dans ce document !

    Attention: Ces conventions ne sont pas toujours respectes !essources:

    url: http://tecfa.unige.ch/guides/php/(y compris manuels, exemples etc.)

    url: Home page PHP: http://www.php.net/url: Rpertoire exemples TECFA: http://tecfa.unige.ch/guides

    fonte exemple significatifixe oblique contenu vous devez rem

    pareilfixe bold then Mots clefs, mett

    http://tecfa.unige.ch/guides/php/http://www.php.net/http://tecfa.unige.ch/guides/php/examples/

  • Introduction PHP - 3. Introduction la programmation avec PHP php-intro-11

    In TECFA 30/11/00

    3.3 Syntaxe de PHPJava, Perl, etc.)

    tour de "/* ...*/"

    3n.

    nt conseill)ion.

    A

    e gnration HTMLternet et Education

    La syntaxe de PHP ressemble celle de famille "C" (C, C++, Chaque instruction se termine par ";" Un commentaire est prcd soit par "//" ou par "#", soit en

    .4 Variables et assignation Une variable est un "containeur" qui contient de linformatio Tout identificateur prcd par un $ est une variable Il nest pas obligatoire de dclarer les variables (mais forteme Pour assigner un contenu une variable on fait une assignat

    . Variables simples et assignationSyntaxe: assignation$variable = contenu ;Illustrations: $a = 10; $nom = "Patrick Ott"; $somme = 123.456;

    voir aussi exemple 3-2 Simple variables, arrays et un peu d[14]

  • Introduction PHP - 3. Introduction la programmation avec PHP php-intro-12

    In TECFA 30/11/00

    Exemple 3-1: Imprimer des variables

    <

    p>/BODY>

    echo est une "instruction" qui permet dimprimer un string Notez que les $xxx sont substitus par leur contenu !

    Application url: /guides/php/examples/simple/simpSource (pour voir) url: /guides/php/examples/simple/simp

    Source (pour copier) url: /guides/php/examples/simple/simp

    http://tecfa.unige.ch/guides/php/examples/simple/simple-echo.phphttp://tecfa.unige.ch/guides/php/examples/simple/simple-echo.phpshttp://tecfa.unige.ch/guides/php/examples/simple/simple-echo.text

  • Introduction PHP - 3. Introduction la programmation avec PHP php-intro-13

    In TECFA 30/11/00

    B. Cration et utilisation darrays simples

    eut manipuler

    M

    M

    U

    ternet et Education

    Un "array" (vecteur) est une sorte de liste Utiles pour stocker de linformation de mme type que lon v

    ensemble.thode de cration 1:$nombres[] =1;$nombres[] =2;$nombres[] =3;$nombres[] =4;

    thode de cration 2:$nombres = array (1, 2, 3, 4);$noms = array ("Pat", "Dave", "Surf", "K");

    tilisation:Syntaxe: Utilisation darrays simples$vecteur[index]

    Lindex commence 0 ! (zero)echo "Le deuxime lment de noms est: $noms[1];

  • Introduction PHP - 3. Introduction la programmation avec PHP php-intro-14

    In TECFA 30/11/00

    Exemple 3-2: Simple variables, arrays et un peu de gnration HTML

    http://tecfa.unige.ch/guides/php/examples/simple/simple-arrays.php

  • Introduction PHP - 3. Introduction la programmation avec PHP php-intro-15

    In TECFA 30/11/00

    C. Arrays associatifs et multi-dimensionnels

    $ )

    Dmais cest conseillternet et Education

    (pas obligatoire au dbut !)fruits = array( "fruits" => array("a"=>"orange","b"=>"banana","c"=>"apple"), "numbers" => array(1, 2, 3, 4, 5, 6) "holes" => array("first", 5 => "second", "third");

    . Rcapitulation variables Il nest pas ncessaire de dclarer une variable au pralable, Voici les 5 types (avec exemple):$a = 1234; # decimal number$a = -123; # a negative number$a = 1.234; $a = 1.2e3; # floating point number$str = "This is a string"; # chaine de caractres$a[0] = "abc"; # lment 0 dun array$a[1] = "def"; # lment 1 dun array$b["foo"] = 13; # lment "foo" dun array

  • Introduction PHP - 3. Introduction la programmation avec PHP php-intro-16

    In TECFA 30/11/00

    3.5 Simples expressions et oprateurs

    A

    ls, par exemple max()

    sultat: et $be de $b et $a

    re de $a par $bternet et Education

    . Oprateurs arithmtiques Comme les maths "normales":

    Note: Il existe des fonctions PHP pour effectuer dautres calcuet min() .... voir le manuel.

    exemple nom Retourne le re $a +$b Addition Somme de $a $a - $b Soustraction Reste de la diffrenc $a * $b Multiplication $a / $b Division $a % $b Modulo Reste de la division enti

  • Introduction PHP - 3. Introduction la programmation avec PHP php-intro-17

    In TECFA 30/11/00

    Exemple 3-3: Simple Arithmtique

    ction) / 3 ;

    e

    A

    lcul.php

    lcul.phps

    lcul.textternet et Education

    $leisure_satisfaction = 5;$work_satisfaction = 7;$family_satisfaction = 8;

    $index = ($leisure_satisfaction + $work_satisfaction + $family_satisfa

    cho " Satisfaction Index = $index ";

    ssignation + addition en une seule instruction:// sets $a to 8, as if we had said: $a = $a + 5;$a += 5;

    Application url: /guides/php/examples/simple/simple-caSource url: /guides/php/examples/simple/simple-ca

    Pour copier url: /guides/php/examples/simple/simple-ca

    http://tecfa.unige.ch/guides/php/examples/simple/simple-calcul.phphttp://tecfa.unige.ch/guides/php/examples/simple/simple-calcul.phps

  • Introduction PHP - 3. Introduction la programmation avec PHP php-intro-18

    In TECFA 30/11/00

    B. Oprateurs sur les chanes

    AU

    A

    !";

    C

    t vrais

    x sont vrais

    ais pas les deuxue $a est faux?)ternet et Education

    ddition de chanes de caractres (concatenation)tiliser le ".", exemple:$a = "Hello ";$b = $a . "World!"; // now $b = "Hello World!"

    Note: Il existe de fonctions PHP pour manipuler des stringsssignation + concatenation en une seule fois$b = "Hello "; // sets $b to "Hello There!", just like $b = $b . "There$b .= "There!";

    . Oprateurs logiques

    example name result $a and $b "et" Rsultat vrai si $a et $b son $a && $b "et" " $a or $b "ou" Rsultat vrai si $a ou $b ou les deu $a || $b "ou" " $a xor $b Or exclusif Rsultat vrai si $a ou $b sont vrais, m

    ! $a "ne pas" Rsultat vrai si $a nest pas vrai (est-q

  • Introduction PHP - 3. Introduction la programmation avec PHP php-intro-19

    In TECFA 30/11/00

    D. Oprateurs de comparaison

    E

    HP.$$$$$eee

    esulto $b.l to $b. than $b.er than $b.qual to $b.r equal to $bternet et Education

    Utilisez des parenthses en cas de doute !

    xemple 3-4: Comparaisons simples

    url: /guides/php/examples/simple/simple-compare.phpurl: /guides/php/examples/simple/simple-compare.phps Note: "TRUE" et "FALSE" sont reprsents par 1 et 0 dans P

    a = "Migros";b = "Coop";result = $a==$b;result2 = $a > $b;result3 = $result==TRUE;cho "Result One = $result. ";cho "Result TWO = $result2. ";cho "Result THREE = $result3.";

    exemple name r $a == $b gal True if $a is equal t $a != $b diffrent True if $a is not equa $a < $b infrieur True if $a is strictly less $a > $b suprieur True if $a is strictly great

    $a = $b suprieur ou gal True if $a is greater than o

    /guides/php/examples/simple/simple-compare.php/guides/php/examples/simple/simple-compare.phps

  • Introduction PHP - 3. Introduction la programmation avec PHP php-intro-20

    In TECFA 30/11/00

    3.6 Slection (Conditions et tests)P

    condition est vraie

    "

    se ...eif (expr) ... ]LSEternet et Education

    rincipe (plusieurs situations typiques): Si une condition est vraie alors faire ceci. Si une condition est vraie alors faire ceci, sinon faire cela. Si une condition est vraie alors faire ceci, sinon si une autre

    faire autre chose, sinon ......

    IF" (plusieurs variantes)Syntaxe: if (expr) statementsSyntaxe: if (expr) statements else statementsSyntaxe: if (expr) statements elseif (expr) statements elSyntaxe: if (expr) statements elseif (expr) statements [ els

    expr = Expression qui doit retourner une valeur TRUE ou FA statements = simple instruction ou bloc dinstructions

    simple: $a = 10; bloc: { $a =12; echo "salut"; ..... }

    droulement de lexcution: Lorsque lexpression = TRUE on excute le(s) statements Lorsque lexpression = FALSE on passe la clause suivante

  • Introduction PHP - 3. Introduction la programmation avec PHP php-intro-21

    In TECFA 30/11/00

    Exemple 3-5: Simple "if" (comparaison)

    ssage en fonction du

    nt effectus cet effet.ternet et Education

    url: /guides/php/examples/simple/simple-if.phpurl: /guides/php/examples/simple/simple-if.phps (source)

    Cet exemple compare deux nombres $a et $b, et affiche un metest.

    Larbre de dcision ci-dessous illustre lordre des tests qui so

    Figure 3-2: Simple arbre de decision

    Est-ce que $a est plusgrand que $b ?

    oui non

    affichea is bigger than b

    Est-ce que $a est gal $b ?

    oui non

    affichea est gal b

    affichea is smaller than b"

    http://tecfa.unige.ch/guides/php/examples/simple/simple-if.phphttp://tecfa.unige.ch/guides/php/examples/simple/simple-if.php

  • Introduction PHP - 3. Introduction la programmation avec PHP php-intro-22

    In TECFA 30/11/00

    oir aussi les instructions suivantes: switch" foreach do ... while break et continue

  • Introduction PHP - 3. Introduction la programmation avec PHP php-intro-23

    In TECFA 30/11/00

    3.7 Fonctions PHP dfinir des

    uon peut doncarguments)

    avant dtre utilises

    2

    greenternet et Education

    Comme tous les langages de programmation PHP permet deprocdures/fonctions.

    Une fonction dans php est un bout de programme nomm (q"appeler" et qui fait quelque chose (ventuellement avec des "Traite moi ces informations et retourne-moi le rsultat"

    On les place au dbut du fichier car elles doivent tre dfinies

    Situation 1 Situation

    bleurouge

    jaunebleu

    violet

    La fonction "color-mix"

  • Introduction PHP - 3. Introduction la programmation avec PHP php-intro-24

    In TECFA 30/11/00

    Exemple 3-6: Gnration HTML simple avec des fonctions

    http://tecfa.unige.ch/guides/php/examples/simple/function-demo.php

  • Introduction PHP - 3. Introduction la programmation avec PHP php-intro-25

    In TECFA 30/11/00

    3.8 Boucles "for" et gnration HTML

    A

    boucleternet et Education

    . Introduction la boucle "for"Syntaxe: "boucle FOR":FOR (expr1; expr2; expr3) statement

    expr1 est value au dbut du loop expr2 est value au dbut de chaque boucle,

    si le rsultat = TRUE la boucle continue, sinon on sort de la expr3 est value la fin de chaque boucle, statement est excut lintrieur de chaque boucle.

  • Introduction PHP - 3. Introduction la programmation avec PHP php-intro-26

    In TECFA 30/11/00

    Exemple 3-7: Love generation

    f }Rl ! I love you so ! ......

    f }RJ ime 3 fois plus que moi! ! Non, je taime 6 .....

    Au 2.iables)

    il que echo mais cestternet et Education

    url: voir: /guides/php/examples/html-generate/love.phpurl: voir: /guides/php/examples/html-generate/love.phps

    or ($i=1; $i

  • Introduction PHP - 3. Introduction la programmation avec PHP php-intro-27

    In TECFA 30/11/00

    B. Fonctions PHP et arrays (gnration dune table HTML)

    E

    ", "forever", "until

    >";ternet et Education

    array() permet de dfinir un vecteur fonction () { ....} dfinit une fonction $[] accde un lment dun vecteur

    xemple 3-8: Gnration de tables html

    url: voir: /guides/php/examples/html-generate/love.phpurl: voir: /guides/php/examples/html-generate/love.phpsurl: voir: /guides/php/examples/html-generate/love.text$love_list = array ("a lot", "a bit", "somewhat", " mourirnotice", "more than I love my dog");

  • Introduction PHP - 3. Introduction la programmation avec PHP php-intro-28

    In TECFA 30/11/00

    Notez:

    t un vecteur (donc laexemple)ternet et Education

    quon insre du PHP lintrieur dun tag quon appelle la fonction build_table avec comme argumen

    fonction pourrait tre utilise ailleurs, avec un include par

  • Introduction PHP - 4. Conseils pratiques pour PHP php-intro-29

    In TECFA 30/11/00

    4. Conseils pratiques pour PHP

    4)de Php ainsi que sur

    le fichier:

    ariable, imprimez!

    dans le manuel) vousternet et Education

    .1 Debugging Regardez le code HTML qui est gnr (Faites "View Source" Pour obtenir un maximum dinformation sur la configuration

    les variables transmises au programme, insrer qq part dansphpinfo();

    toute linformation ne vous sera pas forcment utile ....

    Si vous avez un doute sur linformation contenue dans une vecho "DEBUG: \$var = $var";echo "TEST: var = $var";

    Insrer au dbut du fichier (voir PHP options & informationpermet dobtenir plus davertissements que dhabitudeerror_reporting(63);

  • Introduction PHP - 4. Conseils pratiques pour PHP php-intro-30

    In TECFA 30/11/00

    4.2 PHP en "Stand-alone"

    "

    ternet et Education

    Il est possible dutiliser PHP en "stand-alone" Exemples dutilisation:

    Gnration de pages HTML statiques (php -> html) Filtres, outils de conversion Pour sinitier la programmation avec PHP Pour sinitier la programmation doutils de "massage"

    Ce qui ne marche pas: Traitement de formulaires (il faut un serveur pour cela!)

    Il faut prendre une version "cgi" et non pas "Apache Moduleurl: Exemples: /guides/php/examples/command-line-php/

    /guides/php/examples/command-line-php/

  • Introduction PHP - 4. Conseils pratiques pour PHP php-intro-31

    In TECFA 30/11/00

    A. Usage:

    sh install!)

    ipt sur VOTRE

    )rtoire PHP:ternet et Education

    soit sous forme de script: sous Unix (ou Windows seulement avec un shell comme ba la premire ligne du script doit indiquer le nom du binaire

    #!/local/bin/php -q

    remplacer /local/bin/ par lendroit ou se trouve votre scrmachine)

    il faut rendre excutable le fichier (chmod u+x sous Unix) soit avec les formes suivantes (appel dans une fentre DOS !!

    Si php se trouve dans le PATH ou si vous tes dans le rpe php -q

    Si php ne se trouve pas dans le PATH: \\php.exe -q

    Loption "-q" sert supprimer les header lines HTTP

  • Introduction PHP - 4. Conseils pratiques pour PHP php-intro-32

    In TECFA 30/11/00

    4.3 Win95::NU Win32

    AP ur le trouver)

    "C:\Php"

    er dans le rpertoire

    nstaller

    e votre Autoexec.bat

    fichier php.ini enternet et Education

    Si vous voulez faire des choses plus sophistiqus localement (command line input par exemple), il faut aussi installer Gurl: Voir: http://www.cygnus.com/misc/gnu-win32/

    utile pour dautres trucs, mais dconseill aux dbutants !

    . Les conseils de Olivier:our installer Php sur son PC (voir les pages ressources PHP po

    1. Decompresser le fichier Php-*-win32.zip dans le repertoire

    2. Renommer le fichier php3.ini-dist en php3.ini, et le dplacc:\windows

    3. Cliquer avec le bouton droit sur "php_iis_reg.ing" et faire I

    4. Ajouter la ligne SET PHPRC=c:\windows\php.ini a la fin d

    5. Redemarrer la machine.

    6. Avant de demarrer Php.exe, il peut etre utile de modifier lefonction de vos besoins (lire la documentation).

    http://www.cygnus.com/misc/gnu-win32/

    Introduction PHP1. Table des matires dtaille2. Gnralits2.1 Quelques features de PHP2.2 Intgration de HTML et de code PHP2.3 Sensibilisation Php: Inclusion de fichiers

    3. Introduction la programmation avec PHP3.1 Elments de programmation3.2 Ressources PHP on-line et conventions pour la Syntaxe3.3 Syntaxe de PHP3.4 Variables et assignation3.5 Simples expressions et oprateurs3.6 Slection (Conditions et tests)3.7 Fonctions PHP3.8 Boucles "for" et gnration HTML

    4. Conseils pratiques pour PHP4.1 Debugging4.2 PHP en "Stand-alone"4.3 Win95: