PHP - PowerPoint PPT Presentation

1 / 91
About This Presentation
Title:

PHP

Description:

L'ensemble des r seaux internet utilisant le protocole TCP / IP en respectant les ... ici l'indice est affect au premier l ment de $var et la valeur au deuxi me l ment $var ... – PowerPoint PPT presentation

Number of Views:297
Avg rating:3.0/5.0
Slides: 92
Provided by: philippe174
Category:

less

Transcript and Presenter's Notes

Title: PHP


1
PHP
2
Préambule - Internet
  • Internet
  • Réseau dinterconnexion entre deux ou
  • plusieurs réseaux.
  • Linternet
  • Lensemble des réseaux internet utilisant le
    protocole TCP / IP en respectant les standard en
    vigueurs

3
Préambule - Internet
  • Ensemble de logiciels et de protocoles
  • Basé sur larchitecture TCP/IP
  • Fonctionne en mode client/serveur
  • Offre un ensemble de services (e-mail, transfert
    de
  • fichiers, connexion à distance, www, )

4
Préambule - Internet
  • Structure arborescente
  • Réseau local (laboratoire, département,)
  • Réseau local (campus, entreprise,)
  • Réseau régional
  • Réseau national
  • Réseau mondial

5
 Programmes Web 
Source http//pierre.senellart.com/enseignement/
2005-2006/l2web/cours3.pdf
6
Historique dInternet
  • 1959-1968 Programme ARPA
  • Ministère américain de la défense lancer un
    réseau capable de supporter les conséquences dun
    conflit nucléaire.
  • 1969 ARPANET (lancêtre dInternet)
  • Les universités américaines séquipent de gros
    ordinateurs et se connectent au réseau ARPANET.
  • 1970-1982 ouverture sur le monde
  • Premières connexions avec la Norvège et Londres
  • 1983 Naissance dInternet
  • Protocole TCP/IP tous les réseaux
    sinterconnectent, les militaires quittent le
    navire

7
Historique dInternet
  • 1986
  • Les autoroutes de linformation La National
    Science Fondation décide de déployer des
    super-ordinateurs pour augmenter le débit
    dInternet
  • 1987-1992
  • Les années dexpansion Les fournisseurs daccès
    internet apparaissent et les entreprises se
    connectent au réseau
  • 1993-2006
  • Explosion dInternet Ouverture au grand public
  • Avènement du courrier électronique et du Web
  • Marché considérable
  • Naissance des services Internet (cf. dispo
    suivante)

8
Services dInternet
  • Un service une application qui utilise un
    protocole et un numéro de port
  • Fonctionnement en mode client/serveur au dessus
    de TCP/IP

9
Modèle Internet
  • Une version du modèle OSI (très simplifié)
  • Service
  • ftp, www, telnet,
  • Transport
  • TCP, UDP (entre deux processus aux extrémités)
  • Réseau
  • IP (routage)
  • Transmission
  • Entre 2 sites pas de protocoles spécifiques

10
Services de base de lInternet
  • telnet (TErminaL NETwork)
  • non sécurisé !
  • Accéder à une machine distante
  • FTP (File Transfert Protocol)
  • Transfert de fichier
  • E-mail (Electronic mail ou méssageir
    électronique)
  • SMTP (Simple Mail Transfert Protocol)
  • POP (Post Office Protocole)
  • News
  • NNTP (News Network Transport Protocol)

11
Services de base de lInternet
  • World Wide Web (ou Web)
  • Le web repose sur lhypertexte
  • Une page hypertexte est écrite en HTML
  • Ces pages se trouvent sur un serveur Web
  • Le protocole utilisé est le HTTP (Hyper Text
    Transport Protocol)

12
Web
  • Architecture pour accéder à des documents liées
    entre eux et situés sur des machines reliées par
    Internet
  • Architecture basée sur 3 concepts
  • La localisation URL
  • Le protocole HTTP
  • Le langage HTML
  • Popularité due à
  • Interface graphique conviviale
  • Très grande quantité dinformations
  • Grande diversité dinformations

13
Web
  • Une page web
  • Contient des objets
  • Désignés par une adresse (URL)
  • Les pages web contiennent en général
  • Du code HTML
  • Des objets référencés
  • LURL a au moins deux composantes
  • Le nom de lhôte contenant
  • la page web
  • Le chemin daccès sur lhôte www.free.fr/perso/we
    b
  • Lagent utilisateur pour le web est le browser
    (navigateur)
  • Netscape
  • Mozilla
  • Internet Explorer
  • Opera
  • Le serveur web
  • Apache (domaine publique)
  • MS Internet Information Server

14
Fonctionnement du web
  • Le client (browser) dialogue avec un serveur web
    selon le protocole
  • Le serveur vérifie la demande, les autorisations
    et transmet linformation
  • Le browser interprète le fichier reçu et
    laffiche
  • A ceci peut sajouter des contrôles ou des
    exécutions (côté client ou côté serveur)

15
Adressage de documents
  • Il faut nommer localiser et accéder à une page
  • Quoi ? Où ? Comment ?
  • Solution
  • URL Uniforme Ressource Locator Adresse
    Universelle de Ressource
  • En 3 parties le protocole (comment), le nom DNS
    (où), le nom du document (quoi).
  • Exemple dURL
  • http//www.perdu.com/index.html

16
Adressage de documents
  • Différentes composantes dune URL
  • protocol//host_nameport/path/extrapath?arguments
  • La racine / de path est définie par la
    configuration du serveur web (à ne pas confondre
    avec la racine du système de fichier sur le
    serveur)
  • extrapath?arguments permettent de passer des
    informations à des programmes sexécutant sur le
    serveur

17
Vision côté client
  • Le Web est un ensemble de pages (documents)
    pouvant contenir des liens vers d'autres pages
    n'importe où dans le monde
  • Consultation des pages via un navigateur
  • L'utilisateur suit ces liens par simple click
    notion d'hypertexte (information répartie)
  • Le navigateur (browser)
  • analyse l'URL demandée
  • demande au DNS l'adresse IP du site distant
  • établit une connexion TCP vers le numéro de port
    de l'URL (80 par défaut)
  • formule la requête au serveur

18
Vision côté serveur
  • Le navigateur (browser)
  • va rechercher la page demandée
  • interprète les commandes de formatage et de mise
    en forme (police, gras, couleurs...)
  • va rechercher et affiche des images
  • animation (code JavaScript, gifs...)
  • affiche la page correctement formatée
  • Paramétrage à plusieurs niveaux
  • valeurs par défaut du navigateur
  • valeurs fixées dans le document
  • préférences de l'utilisateur (navigateur)
  • exemples couleur des liens (visités ou non),
    du texte, fond de la page, polices...

19
Vision côté serveur
  • Le serveur est en permanence à lécoute des
    requêtes formulées par les clients (qui peuvent
    être très nombreux !)
  • Il vérifie la validité de la requête...
  • adresse correcte (URL)
  • client autorisé à accéder au document
  • et y répond envoi du texte, des images, du
    code à exécuter sur le client, d'un message
    d'erreur, d'une demande d'authentification, ...
  • Il peut exécuter un programme localement qui va
    générer une réponse HTML (pages dynamiques)

20
Introduction au PHP
  • Langage né en 1994 par Rasmus Lerdof pour son CV
    et pour garder trace de consultations.
  • Le PHP permet de réaliser des sites Internet
    élaborés.
  • Le HTML simple ne suffit pas à répondre aux
    impératifs imposés par les dernières évolutions
    du Web.
  • PHP est un disponible dans plusieurs
    environnements, tels qu'Unix (Linux, AIX),
    Windows (95, 98, NT) et Macintosh.
  • PHP est un langage de programmation spécialisé
    dans la génération de code, dont le langage de
    prédilection est le HTML (crée en, 1984 par le
    CERN).
  • Il possède une impressionnante quantité d'outils
    (manipulation d'images, traitement de fichiers,
    accès aux bases de données, etc.)

21
La langage
  • Le PHP est un langage complet, écrit en C, qui
    reprend une grande partie des spécificités
    techniques et sémantiques de ce langage.
  • Le moteur d'interprétation du langage lit un
    fichier source PHP, puis génère un flux
    destination, en respectant les définitions et
    règles suivantes
  • Un bloc PHP est un groupe continu de lignes,
    encadré par deux balises lt? et ?gt ou lt?php et
    php?gt
  • Toute ligne située à l'extérieur de ces balises
    n'est pas interprétée et est envoyée telle quelle
    dans le flux de sortie.
  • Toute ligne située à l'intérieur de ces balises
    est considérée comme une instruction PHP et est
    donc interprétée par le moteur.
  • Les instructions PHP n'apparaissent pas dans le
    résultat généré.
  • Lorsqu'une erreur survient, un message est
    intégré dans le flux de sortie, et la génération
    du script est interrompue.

22
Schéma de fonctionnement général

d'un langage de script
23
Premier programme
  • La conception du script PHP est réalisé avec un
    éditeur quelconque, Emacs (hé hé hé !) est très
    bien pour cela.
  • ltHTMLgt
  • ltHEADgtltTITLEgtMon premier programmelt/TITLEgtlt/HEADgt
  • ltBODYgt
  • lt? echo "Ca marche !" ?gt
  • lt/BODYgt
  • lt/HTMLgt
  • L'extension de votre fichier doit être .php ou
    .php3 afin d être interprété par le serveur
    (Apache par exemple)

24
Les variables
  • Contrairement à beaucoup de langages, PHP ne
    contient de partie déclarative clairement
    définie. Pour déclarer une variable, il suffit de
    l'initialiser. Celle-ci sera immédiatement
    accessible, et le restera jusqu'à la fin du
    script.
  • Les variables en PHP sont toutes dotés du préfixe
  • exemple
  • toto 1
  • Le type d'une variable est également défini par
    la valeur qui lui à été affecté lors de sa
    création. Il existe5 types de données
  • Entier (int, integer)
  • Décimal (real, double, float)
  • Chaîne de caractères (string)
  • Booléen (boolean)
  • Tableau (array)
  • Objet (object)

25
Les constantes
  • Inutile de revenir sur l'intérêt des constantes.
    Il existe deux constantes prédéfinis en PHP.
  • Pour définir une constante il suffit d'utiliser
    l'instruction
  • define
  • exemple
  • define(MACONSTANTE, Hello World) 
  • if (defined(MACONSTANTE))
  • print La valeur de ma constante est 
    .MACONSTANTE //Attention, on accède au contenu
    sans le .

26
Portée des variables
  • Selon l'endroit du code où les variables sont
    définies, ces dernières auront une portée plus ou
    moins grande, c-à-d qu'elles seront définies soit
    pour une parie du code (fonction) soit pour sa
    totalité.
  • Il existe trois niveaux de définition de
    variables
  • Le niveau global. Il définit des variables dans
    l'intégralité du code d'une page PHP.
  • Le niveau local. Il définit des variables propres
    à une fonction, dont la durée de vie ne dépasse
    pas le temps de cette fonction.
  • Le niveau static. Il définit des variables
    propres à une fonction, qui persistent pendant
    l'intégralité du code de la page PHP.

27
Les tableaux
  • Dans PHP, comme dans tout autre langage, les
    tableaux sont une structure de données
    incontournable.
  • La déclaration d'un tableau se fait de la même
    manière que la déclaration d'une variable avec un
    indice se trouvant entre et .

28
Les tableaux
  • tableau0 1 // on crée un tableau, et sa
    première valeur est 1
  • Pour un tableau à deux dimensions, il suffit de
    mettre un second indice au moment de
    l'affectation.
  • exemple
  • tableau00 1 // on crée un tableau, et sa
    première valeur est 1
  • Il n'est pas obligatoire de préciser l'indice
    pour affecter une valeur.
  • exemple
  • tableau 1 // équivaut à tableau0 1
  • tableau 45 // équivaut à tableau1 45
  • tableau 6 // équivaut à tableau2 6
  • La déclaration et linitialisation d'un tableau
    peuvent également se faire par l'intermédiaire de
    la fonction 'array()'. Cette fonction permet de
    préciser les indices ainsi que les valeurs du
    tableau (à l'aide de l'opérateur gt).

29
Les tableaux
  • Exemple
  • tableau array(0gt1, 1gt45, 2gt6)
  • tableau array("rouge"gt"red",
    "vert"gt"green", "bleu"gt"blue")
  • La navigation dans les éléments du tableau
    s'effectue à l'aide des fonctions 'next()' ,
    'prev()' et 'each()'.
  • Le nombre d'éléments d'un tableau peut être
    obtenu à l'aide de la fonction 'count()'. Le tri
    des tableaux est facilité par de nombreuses
    fonctions asort(), ksort(), sort(), usort(),
    etc...

30
Variables d'environnement
  • L'un des aspects fondamentaux d'une application
    construite sur une architecture de type intranet
    est l'utilisation des variables d'environnement
    du serveur, et notamment celles du serveur HTTP.
  • Avec PHP toutes les variables d'environnement du
    serveur sont automatiquement reprises dans les
    scripts PHP en tant que variables globales. Ainsi
    il suffit de les utiliser directement dans le
    code.

31
Variables d'environnement
  • exemple
  • Tableau _SERVER /HTTP_SERVER_VARS
  • IP_SERVERREMOTE_ADDR
  • echo IP _at_ IP de la machine cliente

32
Exemples de variables denvironnement
  • SERVER_NAME  Le nom du serveur hôte qui exécute
    le script suivant. Si le script est exécuté sur
    un hôte virtuel, ce sera la valeur définie pour
    cet hôte virtuel.
  • PHP_SELF Le nom du fichier du script en cour
    d'exécution, par rapport au document root.
  • DOCUMENT_ROOT  La racine sous laquelle le script
    courant est exécuté, comme défini dans la
    configuration du serveur.
  • REMOTE_ADDR  L'adresse IP du client qui demande
    la page courante.
  • REMOTE_PORT Le port utilisé par la machine
    cliente pour communiquer avec le serveur web.
  • SCRIPT_FILENAME  Le chemin absolu jusqu'au
    script courant.
  • SERVER_PORT  Le port de la machine serveur
    utilisé pour les communications. Par défaut,
    c'est '80'. En utilisant SSL, par exemple, il
    sera remplacé par le numéro de port HTTP
    sécurisé.
  • REQUEST_URI  L'URI qui a été fourni pour accéder
    à cette page. Par exemple '/index.html'.

33
Variables issues de formulaires
  • Les variables sont issues de formulaires HTML,
    elles correspondent aux différents champs
    positionnés entre les balises ltFORMgt et lt/FORMgt
    de ce formulaire. La page qui reçoit ces
    variables est celle qui est désignée par
    l'attribut ACTION de la balise ltFORMgt.
  • exemple (fichier test.html)
  • ltHTMLgt
  • ltFORM ACTION"test.php" METHODPOSTgt
  • ltINPUT TYPEhidden NAME"toto" VALUE"bonjour"gt
  • Nom ltINPUT TYPEtext NAME"nom"gt
  • ltINPUT TYPEsubmit VALUE"Envoyer"gt
  • lt/FORMgt
  • lt/HTMLgt

34
Variables issues de formulaires
35
Variables issues de formulaires
  • Tableaux
  • HTTP_GET_VARS/_GET
  • HTTP_POST_VARS/_POST
  • Exemple
  • nom _POSTtoto
  • echo nom

36
Tests if... then... else
  • Test de base que l'on trouve dans la majeure
    partie des langages. Si une condition est vrai
    alors on exécute des instructions sinon
    (facultatif) on en exécute d'autre. On peut
    changer de condition avec un 'elseif'.
  • syntaxe
  • if ( condition1 )
  • Action 1
  • elseif ( condition2 )
  • Action 2
  • else
  • Action 3

37
Tests if... then... else
  • exemple
  • if (ab)
  • echo "A est égal à B"
  • elseif (a gt b)
  • echo "A est supérieur à B"
  • else
  • echo "A est inférieur à B"

38
Tests switch... case... default
  • Si les conditions successives ne portent que sur
    la valeur d'une variable, on pourra
    avantageusement remplacer le test 'if...
    elseif... else' par 'switch'. Dans ce test, la
    condition est associée à la valeur d'une
    variable, de plus l'instruction 'break' est
    primordiale à la fin de chaque bloc de
    conditions, sinon toutes les conditions seront
    vérifiées et exécutées.
  • exemple
  • switch (a)
  • case b
  • echo "A est égal à B"
  • break
  • case gtb
  • echo "A est supérieur à B"
  • break
  • default
  • echo "A est inférieur à B"
  • break

39
Boucles
  • while ( condition )
  • Action
  • do
  • Action
  • while (condition)
  • for (expr1 expr2 expr3)
  • Action

40
Boucles
  • i1
  • while (i lt 10)
  • echo "- i -"
  • i
  • i1
  • do
  • echo "- i -"
  • i
  • while (i lt 10)
  • for (i 1 i lt 10 i)
  • echo "- i -"

41
BreakContinue
  • Break Cette instruction permet de sortir de
    n'importe quelle boucle, à n'importe quel moment.
  • Continue Cette instruction permet de ne pas
    exécuter le code contenu dans la boucle et de
    passer à l'itération suivante.
  • for (i1 ilt10 i)
  • if (ilt5) echo i
  • else
  • break
  • echo "- "
  • // cette boucle affichera 1 - 2 - 3 - 4 - 5

42
Fonctions each() et list()
  • Ces fonctions sont aussi étroitement liées aux
    boucles.
  • each(..)
  • Cette fonction permet de parcourir tous les
    éléments d'un tableau sans se soucier de ses
    bornes. Elle retourne la combinaison clé-valeur
    courante du tableau passé en paramètre, puis se
    positionne sur l'élément suivant, et cela du
    premier au dernier indice. Lorsque la fin du
    tableau est atteinte, each( ) retourne la valeur
    faux (false).
  • list(..)
  • Cette fonction est très souvent associée à la
    fonction each(), elle permet d'affecter les
    éléments du tableau dans des valeurs distinctes.

43
Fonctions each() et list()
  • exemple
  • tableau array("val1","val2","val3","val4")
    //on crée un tableau avec 4 valeurs
  • while (var each(tableau))
  • echo "var0 var1"
  • Ce code produit le résultat suivant
  • 0 val1
  • 1 val2
  • 2 val3
  • 3 val4
  • ici l'indice est affecté au premier élément de
    var et la valeur au deuxième élément var

44
Fonctions each() et list()
  • tableau array("val1","val2","val3","val4")
    //on crée un tableau avec 4 valeurs
  • while (list(cle, valeur) each(tableau))
  • echo "cle valeur"

45
Les Fonctions
  • Comme dans tout langage structuré, en PHP, les
    fonctions sont la base dune programmation claire
    et efficace. Une fonction est une sorte de
    sous-programme isolé du reste du code, exécutable
    à tout moment, depuis nimporte quelle partie du
    code principal ou nimporte quelle autre
    fonction, par simple appel. De plus, les
    avantages des fonctions sont
  • La non répétition de la même séquence de code
  • De cet avantage découlent
  • Le gain de productivité.
  • La meilleure lisibilité du code.
  • La maintenance facilitée.

46
Déclaration, paramètres, valeurs de retour
  • Une fonction est une séquence de code qui peut
    remplir nimporte quelle tâche. Tout code valide
    peut figurer dans le corps dune fonction.
  • Déclaration
  • La syntaxe de déclaration sappuie sur le mot
    clé function. Ce mot clé est immédiatement suivi
    du nom de la fonction, puis de parenthèses
    (obligatoires) destinées à accueillir les
    éventuels paramètres à passer à la fonction.

47
Déclaration, paramètres, valeurs de retour
  • exemple
  • function bonjour( )
  • echo  Bonjour ! 
  • Cette fonction ne fait quafficher 'bonjour' et
    ne retourne aucun résultat, on lutilisera de la
    manière suivante
  • Bonjour( ) // affiche 'bonjour' à lécran
  • Pour que la fonction retourne un résultat, on
    utilisera le mot clé return
  • function bonjour2( )
  • return  Bonjour !
  • echo bonjour2( )
  • bonjour affiche le résultat elle-même, alors
    quil faut afficher le résultat de bonjour2 pour
    obtenir une action similaire.

48
Déclaration, paramètres, valeurs de retour
  • function dire_texte(qui, texte 'Bonjour')
  • if(empty(qui)) // qui est vide, on retourne
    faux
  • return false
  • else
  • echo "texte qui" // on affiche le texte
  • return true // fonction exécutée avec
    succès

49
Déclaration, paramètres, valeurs de retour
  • Passage par valeur par référence Le passage
    des paramètres tel quon la vu précédemment est
    ce que lon appelle le passage par valeur. Il
    existe une autre manière de procéder le passage
    par référence. On passe à la fonction la
    référence (adresse mémoire) dune variable
    existante, et la fonction modifie directement la
    valeur de cette variable.
  • exemple function bonjour(phrase) phrase
     bonjour Toto Dupont  chaine  Phrase
    qui va disparaître  bonjour(chaine) echo
    chaine // affiche 'bonjour Toto Dupont' à
    lécran

50
Opérateurs Logiques
  • Ils permettent de combiner plusieurs tests entre
    eux.
  • exemple Ici a et b peuvent prendre les
    valeurs booléennes vrai ou faux.
  • Opérateur Exemple Résultat
  • and ( ) a and b vrai si a et b sont vrai
    a b tous les deux
  • or ( ) a or b vrai si a est vrai ou b
    a b est vrai, ou encore si a et
    b sont vrai tous les deux
  • not ( ! ) not a vrai si a est faux !a

51
Opérateurs de Comparaison
  • Ils permettent de comparer les valeurs de deux
    variables.
  • exemple Ici a et b sont du même type de
    variable.
  • Opérateur Exemple Résultat
  • a b vrai si a est égal à b
  • ! a ! b vrai si a est différent de b
  • lt a lt b vrai si a est inférieur b
  • gt a gt b vrai si a est supérieur b
  • lt a lt b vrai si a est inférieur ou égal à
    b
  • gt a gt b vrai si a est supérieur ou égal à
    b

52
Gestion de la date
  • Fonction Date nombreux paramètres
  • echo date("d-m-Y") // affiche "12-12-2000"

53
Gestion des fichiers
  • La fonction de base est la fonction fopen( ).
    C'est elle qui permet d'ouvrir un fichier, que ce
    soit pour le lire, le créer, ou y écrire. Sa
    syntaxe est
  • entier fopen(chaine nomdufichier, chaine mode)
  • Différents modes disponibles
  • r ouverture en lecture seulement
  • w ouverture en écriture seulement (la fonction
    crée le fichier s'il n'existe pas)
  • a ouverture en écriture seulement avec ajout du
    contenu à la fin du fichier (la fonction crée le
    fichier s'il n'existe pas)
  • r ouverture en lecture et écriture
  • w ouverture en lecture et écriture (la
    fonction crée le fichier s'il n'existe pas)
  • a ouverture en lecture et écriture avec ajout
    du contenu à la fin du fichier (la fonction crée
    le fichier s'il n'existe pas).

54
Gestion des fichiers
  • Exemples
  • fp fopen("../fichier.txt","r") //lecture
  • fp fopen("ftp//iutbayonne.univ-pau.fr./pub/fic
    hier.txt","w")
  • //écriture depuis début du fichier
  • fp fopen("http//www.nexen.com/fichier.txt","a"
    )
  • //écriture depuis fin du fichier

55
Lecture dans un fichier
  • lt ?
  • monfichier fopen(monfichier.txt, r) 
    // ouverture en lecture
  • if ( !(monfichier))
  • print( Impossible douvrir le fichier ) 
  • exit 
  • while ( !feof(monfichier) )
  • ligne fgets(monfichier,255) // 255
    caractères max. ou bien fin de ligne.
  • print  ligne ltBRgt  
  • fclose (monfichier) 
  • ?gt

56
Écriture dans un fichier
  • lt ?
  • monFichier fopen(monfichier.txt, w) 
    // ouverture en écriture
  • if ( !(monfichier))
  • print( Impossible de créer le fichier \n) 
  • exit 
  • fputs(monfichier, ligne 1)  // on écrit
    deux lignes
  • fputs(monfichier, ligne 2) 
  • fclose(monfichier)  // on ferme le fichier, on
    libère les ressources
  • ?gt

57
Fonction Explode
  • Il est fréquent davoir des fichiers contenant
    différents champs séparés par un délimiteur
    quelconque. Une fonction très utile dans ces cas
    là est la fonction explode. Sa syntaxe est la
    suivante
  • explode ( caractère délimiteur , chaîne de
    donnée)
  • Roose Philippe 27
  • Goudin David 28

58
Fonction Explode
  • lthtmlgt ltheadgt lttitlegtExemples de Explodelt/titlegt
    lt/headgt ltbodygt
  • lt?php
  • if (!file_exists( test.txt ))
  • print "ltH3gtltBRgtErreur, fichier compteur
    manquantltBRgt"
  • exit
  • else
  • fd fopen(fic,"r")
  • while (!feof(fd))
  • ligne fgets(fd,255)
  • tabexplode("",ligne)
  • print "Nom tab0ltbrgt"
  • print "Prénom tab1ltbrgt"
  • print "Age tab2ltbrgt"
  • fclose(fd)
  • php?gt

59
Fonctions Mathématiques
  • Elles y sont toutes !
  • Abs, cos, sin, tan, sqrt, exp,
  • pi( )

60
Chaînes de caractères
  • strpos (chaîne, sous chaîne)  retourne la
    position de la sous chaîne dans la chaîne. Dans
    le cas où la chaîne existe en plusieurs
    exemplaires, cest la position de la première
    occurrence qui est retournée. strrpos retourne
    quand à elle la position de la dernière
    occurrence.
  • strstr (chaîne, sous chaîne) retourne la portion
    de la chaîne à partir de la première occurrence
    de la sous chaîne.
  • foreach (nom tableau)  A chaque appel, cette
    fonction retourne la valeur suivante du tableau.
  • strlen (chaîne)  retourne la taille de la
    chaîne.
  • strtolowerstrtoupper (chaîne)  retourne la
    chaîne passée en paramètres an minuscules (resp.
    majuscules).
  • str_replace (car dorigine, car de destination,
    chaîne)  remplace le caractère dorigine par le
    caractère de destination dans la chaîne.
  • g supprime les caractères invisibles (espaces,\n,
    ) au début et à la fin de la chaîne.
  • ereg(chaîne à chercher, chaîne)  retourne vrai
    si la chaîne à chercher (sous forme de chaîne ou
    sous forme dexpression régulière) est contenue
    dans chaîne.

61
Mail
  • Il existe une méthode PHP permettant denvoyer un
    mail directement, sans appeler un quelconque
    gestionnaire de courrier.
  • La fonction mail (ou email parfois) permet de
    réaliser cela. Elle nécessite au moins trois
    paramètres 
  • Le destinataire,
  • Lobjet du message,
  • Le corps du message.
  • lt ?
  • mail(dupont_at_mondomaine.fr, Test de la
    commande mail, Voici le corps du mail) 
  • ?gt
  • Enverra un mail à dupont_at_mondomaine.fr avec
    comme sujet de mail  Test de la commande mail ,
    et comme corps du mail   Voici le corps du
    mail .

62
FTP
  • Il est possible de se connecter et de
    s authentifier à un serveur FTP pour le
    transfert (download/upload) de fichiers.
  • L ensemble des fonctions de connexion,
    récupération de liste de fichiers, upload,
    download sont disponibles
  • ftp_connect, ftp_login, ftp_quit, ftp_get,
    ftp_put, ftp_size, etc.

63
Coté serveur
  • passthru(commande)/system(commande) exécute une
    commande sur le serveur et de visualiser le
    résultat sur la sortie standard.
  • exemple passthru("ls -l") donnera à l'écran la
    liste des fichiers du répertoire contenant le
    script où est située cette instruction).
  • Rq passthru retourne les résultats à la fin de
    l'exécution de la commande alors que system
    essaie de les envoyer au fur et à mesure qu'ils
    sont retournés.
  • exec (commande, resultat) idem mais sans echo

64
Sérialisationen très bref !
  • Permet de sauvegarder un objet ou le contenu d'un
    tableau dans son état.
  • Le mécanisme de sérialisation transforme dans un
    format de type chaîne de caractères le contenu
    d'un tableau ou un objet quel qu'il soit.
  • Pour ce faire, deux fonctions de sérialisation
    (encodage) et désérialisation (décodage) sont
    nécessaire
  • monobjetserialise serialize(monobjet) //
    sérialisation
  • monnouvelobjet unserialize
    (monobjetserialise) // désérialisation
  • L'intérêt est qu'au delà de l'encodage, il est
    ainsi possible d'envoyer via le réseau des
    objets/tableaux en PHP, mais également de
    sauvegarder des objets/tableau aisément dans des
    fichiers/BD pour les retrouver tels quels plus
    tard.

65
Bases de Données
  • lt?
  • bdd "mabase" // Base de données
  • host "sql.iutbayonne.univ-pau.fr"
  • user "roose" // Utilisateur
  • pass "12345"
  • mysql_connect(host,user,pass) or die
    ("Impossible de se connecter à la base de
    données")
  • mysql_select_db(bdd)
  • ?gt

66
Requêtes SQL
  • query
  • "SELECT num, pays, date, circuit FROM nomtable
    "
  • result mysql_query(query)
  • if (mysql_error())
  • print "Erreur dans la base de données
    ".mysql_error() exit()

67
Récupération résultats
  • La fonction mysql_fetch_row() retourne un tableau
    qui représente tous les champs dune rangée de
    résultat (un tuple). Chaque appel produit le
    tuple jusquà ce quil ny en ai plus.
  • Il existe dautres fonctions pour réaliser cela,
    mais celle-ci est la plus rapide pour obtenir des
    résultats à partir dune requête.

68
Récupération résultats
  • while (rowmysql_fetch_row(result)) // result
    a été obtenu par le msql_query précédent.
  • // récupération des informations
  • num mysql_result(rowt0)
  • pays mysql_result(row1)
  • date mysql_result(row2)
  • circuit mysql_result(row3)
  • print    
  • A noter qu'au lieu d'utiliser les indices 0, 1,
    ... il est possible de donner le nom du champ
    (row'pays') à la condition d'utiliser
    mysql_fetch_array() en lieu et place de
    mysql_fetch_row().

69
Exemple de script
  • lthtmlgt ltheadgt lttitlegtPage persolt/titlegt lt/headgt
    ltbodygt
  • je mets ici tout le code nécessaire avant
    d afficher le compteur.
  • lt?php
  • fic"cpt.txt"
  • if (!file_exists(fic))
  • print "ltH3gtltBRgtErreur, fichier compteur
    manquantltBRgt"
  • exit
  • else
  • fd fopen(fic,"w")
  • hits fgets(fd,10)
  • hits
  • fseek(fd,0)
  • fputs(fd,hits)
  • fclose(fd)
  • print "ltboldgthitslt/boldgt"
  • php?gt

70
Formulaire/Mail
  • lthtmlgt ltheadgt lttitlegtFormulaire/Maillt/titlegtlt/head
    gtltbodygt
  • ltFORM method"POST" action"mail.php3"gt
  • ltPgt Adresse ltINPUT TYPEtest NAMEadr_mail
    VALUE"" SIZE50 MAXLENGTH50 lt/Pgt
  • ltinput type"submit" value Mail"gt
  • lt/FORMgt

71
PHP et les Images
  • Formats supportés
  • JPG, GIF, PNG
  • Fonctionnalités
  • Récupération,
  • Création,
  • Modification,
  • Manipulation,

72
Fonctions liées aux images (1)
  • Id getimagesize (nom de fichier)
  • hauteur, largeur, type, balise HTML
  • id imagecreate(largeur, hauteur)
  • imagedestoy(identifiant image)
  • imagefill (image, x, y, couleur)
  • imagechar(image, police de car., x, y,  car ,
    couleur)
  • imagecharup ...

73
Fonctions liées aux images (2)
  • imagestring et imagestringup
  • imagecolorat(image, x, y)
  • imagecolorstotal(image)
  • imagecolortransparent(entier image, entier
    couleur)

74
Fonctions liées aux images (3)
  • imagecreatefromjpeggifpng(nom du fichier)
  • imagedashedline(image, x début, y début, x fin, y
    fin, couleur)
  • imagefilledpolygon(image, tableau de points,
    nombre de points, couleur) 
  • imagefilledrectangle(image, x haut gauche, y
    haut gauche, x bas droite, y bas droite, couleur)

75
Fonctions liées aux images (4)
  • imageloadfont(nom de la police de caractère)
  • fonction imagesetpixel(image, x, y, couleur)
  • imagesx(image) et imagesy(image)
  • imagejpggifpng (id image) -gt le navigateur.

76
Gestion de sessions cookies
  • setcookie (nom, valeur, expiration, chemin,
    domaine, securite) permet de créer un cookie sur
    le poste client.
  • Le premier champs nom est obligatoire et défini
    son nom.
  • Si l'on souhaite lui associer une valeur on
    renseignera le second champs.
  • Le troisième permet de spécifier une date
    d'expirationdans le cas où rien n'est précisé,
    le cookie devient permanent.
  • Les champs chemin et domaine permettent de
    préciser les URL et domaines auxquels sont
    associés le cookie. Enfin le dernier, sécurité
    permet de n'envoyer le cookie que si la connexion
    est réalisée via le protocole sécurisé HTTPS
    (TRUE).

77
Gestion de sessions cookies
  • Une fois le cookie crée, il est possible de le
    récupérer dans les pages suivantes via le tableau
    _COOKIE'nom cookie'.
  • setcookie("TestCookie", value, time()3600)  //
    expire dans une heure
  • La suppression d'un cookie se fait en le
    recréant...mais avec une date d'expiration passée
    !
  • setcookie ("TestCookie", "", time() - 3600) //
    a expiré y'a une heure
  • Les cookies ne sont malheureusement pas supportés
    par l'ensemble des navigateurs pour des raisons
    de confidentialité. Aussi, il est nécessaire de
    mettre en oeuvre d'autres mécanismes afin de
    gérer les sessions.

78
Gestion de sessions variables de sessions
  • bool session_start( ). Dans le cas ou true est
    retournée, cette fonction permet soit de créer
    une session (si pas encore définie) soit
    dutiliser les variables de la session en cours.
  • string Session_ID (string id) permet daccéder
    à lidentifiant unique dune session. Dans le cas
    où un paramètre est précisé, l'identifiant de
    session changera et prendra la valeur fournie
  • string Session_Name(string name) retourne le
    nom de la session en cours ou le change avec la
    valeur du paramètre précisé.
  • L'affectation du tabeau _SESSION permet de créer
    des variables de session (il faut que
    session_start() soit en entête de page).

79
Programmation OO
  • classe MaClasse
  • attribut1 
  • attribut2 
  • function maMethode1( )
  • function maMethode2(param1, param2  je suis
    une chaîne ) // paramètre par défaut
  • // fin de la déclaration de la classe.

80
Programmation OO - exemple
  • lt?php
  • class classBD
  • var base var host var user var
    passwdvar request
  • var resultvar tuple
  • function classBD(hote, utilisateur, mp)
    // Initialisations
  • this-gthost hote
  • this-gtuser utilisateur
    this-gtpasswd mp
  • // Connexion _at_mysql_connect(this-gthost,
    this-gtuser,this-gtmp) or die( "Impossible de se
    connecter à la base de données") function
    selectBD(nombase) this-gtbasenombase
    _at_mysql_select_db(this-gtbase)
  • ... function close()
  • MYSQL_CLOSE()
  • ?gt

81
Programmation OO - exemple
  • lt?php
  • include("./classBD.inc")
  • ?gt
  • ltHTMLgtltTITLEgtUtilisation de classes en PHP
    lt/TITLEgt
  • ltBODYgtExemple d'accès à une BD sous mySQL ltBRgt
  • lt?phpo new classBD()
  • ?gt
  • lt/BODYgtlt/HTMLgt

82
PHP3 vs PHP4
  • PHP/FI (Personal Home Page / Form Interpreter)
    fût la première version officielle de PHP (tout
    est parti d'une librairie Perl à l'origine).
  • PHP3 résulte d'une réécriture complète de PHP/FI.
  • PHP3 et PHP/FI ne sont plus officiellement
    supportés. Néanmoins, ils persistent encore en
    particulier chez certains hébergeurs.
  • Quant à PHP4, il résulte à son tour d'une
    réécriture de PHP3 et utilise le moteur Zend.
    C'est la branche courante de PHP.

83
PHP3 vs PHP4 nouveautés
  • PHP4 ré-écriture complète du moteur
    d interprétation. D une interprétation ligne à
    ligne, on passe à une compilation du code
    souhaitable pour de gros développements.
  • Auteurs Zeev Zuraski, Andi Gutmans.

84
PHP3 vs PHP4
  • Meilleure gestion du  Garbage Collector 
  • Gestion des sessions évite de passer par des
    variables partagées et/ou des cookies. Elles sont
    stockées dans un SGBD-R et/ou dans un fichier
    ASCII.
  •  Bufferisation  des sorties.
  • Comparaison valeur à valeur type à type
  • ajout d un type Booléen

85
PHP3 vs PHP4
  • Gestion des COM sous Windows
  • exemple tiré de www.phpheaven.net
  • lt?php
  • word new COM( "word.application") or die(
    "Impossible to instantiate WordApp")
  • print "Word is running, version
    word-gtVersion\nltbrgt"
  • word-gtVisible1
  • word-gtDocuments-gtAdd()
  • word-gtSelection-gtTypeText( "This is a test...")
  • word-gtDocuments1-gtSaveAs( "test_com_php.doc")
  • word-gtQuit()
  • ?gt

86
Évolution importante
  • PHP5

87
Gestion des Exceptions (PHP5)
  • Les programmeurs Java sont familiers avec ce
    concept. L'idée est d'encapsuler du code à
    problème dans une section. Si ce code se déroule
    mal, une exception est levée et la procédure
    associée sera exécutée.
  • Il est possible d'associer plusieurs procédure
    (plusieurs catch) à un try dans le cas où le code
    critique peut lever plusieurs exceptions
    différentes.

88
Gestion des Exceptions (PHP5)
  • try
  • ...
  • throw new Exception ('Aïe, y a un problème',
    1)
  • catch (Exception e)
  • print ltbrgtException n .e-gtgetCode()
  • print ltbrgtMessage .e-gtgetMessage()
  • print ltbrgtDans le fichier .e-gtgetFile()
  • print ltbrgtA la ligne .e-gtgetLine()

89
PHP vs ASP
  • En premier lieu, PHP et les ASP sont très proches
    dans la philosophie et la mise en oeuvre (code
    directement intégré aux pages HTML).
  • Comparé à PHP3, les ASP se montrent parfois plus
    rapides et implémentent un concept très utile,
    celui des sessions. Les sessions ne sont pas
    supportées en natif par PHP3, même si de
    multiples solutions existent (PHPLib
    http//phplib.netuse.de/).
  • Comparé à PHP4, ces différences s'estompent. Ce
    dernier gagne en rapidité et introduit à son tour
    le concept de sessions.
  • Notons aussi que les ASP sont largement inféodés
    au monde Win32, même si des solutions Unix
    existent (ChiliSoft http//www.chilisoft.com/)
  • PHP quant à lui est disponible sous NT comme sous
    Unix.
  • Enfin, précisons que PHP dispose d'un plus grand
    nombre de fonctions, s'interface aisément avec
    des librairies et outils externes. En
    particulier, il est en mesure de s'interfacer, le
    plus souvent en natif, avec l'ensemble des SGBD
    standards du marché. Les ASP ne proposent qu'une
    approche ODBC, bien moins performante.

90
PHP en chiffres
  • PHP 500 000 développeurs à travers le monde
  • Un marché de 4,8 milliards d.
  • Le langage (en fait la plate-forme) est utilisée
    par plus de 1/3 des sites web dans le monde (46
    en France), ce qui représente 17 millions de
    domaines. Parmi les entreprises du CAC40, 78 en
    2003 et 87 en 2004 utilisent le PHP.
  • Interopérabilité PHP peut instancier des objets
    COM, .NET mais également Java.
  • PHP peut se connecter à lensemble des ténors des
    SGBD, mais aussi aux annuaires (LDAP), à Lotus
    Notes, à SAP, permet lutilisation des services
    web (SOAP/WSDL), gère le XML, s interface avec
    les systèmes de paiement en ligne (VeriSign,
    Cybercash, Crédit Mutuel, etc.), génère du Flash
    (extension Ming), du PDF (classe FPDF).
  • Robustesse (performances/fiabilités) 90 des
    sites web les plus fréquentés dans lhexagone
    avec des sites dépassant les 500 000
    connexions/jour. Une des plus forte plate-forme
    au monde supportant PHP permet 150 000
    utilisateurs simultanément (avec 220 serveurs en
    cluster).

91
Bibliographie
  • Maîtrisez PHP4 Wankyu et al. - Éditions Campus
    Press/Wrox 2001 ISBN 2-7440-9002-6
  • Programmez en PHP Léon Atkinson Éditions
    Campus Press Référence 1999 ISBN
    2-7440-0771-4
  • PHP 5 MySQL 5 Luke Welling et Laura Thomson
    Campus Press Pearson Education ISBN
    2-7440-1887-2
  • PHP 5 3ème édition Léon Atkinson Campus
    Press Pearson Education ISBN 2-7440-1634-9
Write a Comment
User Comments (0)
About PowerShow.com