Académique Documents
Professionnel Documents
Culture Documents
PHP
Langage interprété
Pas de compilation
Typage faible
Programmation orientée objet
Client Serveur
Demande de ressource
Traitement de la demande
La ressource est « .php »
Réseau Transfert de la demande
au module PHP
Exécution du script
PHP sur le serveur
Construction de la
réponse
Réponse produite
Analyse de la réponse
Rendu graphique de la
réponse
17:40:48 Programmation Web 9
Programme en PHP
Commentaires:
/* jusqu’au prochain */
// jusqu’à la fin de la ligne
$test = 1.5 ;
$test
$test = 12 ; integer
float
array
1.5
12
$test = array() ;
$test = "10" ;
$nombre1 = 1.5 ;
$nombre2 = 12 ;
$chaine1 = "10" ;
$chaine2 = 'coucou' ;
Utilisé comme float
$total =
$nombre1 + $nombre2 + $chaine1 + $chaine2 ;
1.5 12 "10" 'coucou'
13.5 10.0
23.5 0.0
$a = (integer) "10" ;
$b = (string) 12 ;
$c = (float) $b ;
<?php
define("MA_CONSTANTE", "Bonjour à tous") ;
nom valeur
echo ma_constante ;
Utilisation de la constante
Guillemets doubles
$a="chaîne" ; chaîne
$b="voici une " . $a; voici une chaîne
Guillemets simples
$a='chaîne' ; chaîne
$b='voici une ' . $a; voici une chaîne
$nb = 6*2 ;
"Acheter " . $nb . " livres"
vaut "Acheter 12 livres"
$a + $b Somme
$a - $b Différence
$a * $b Multiplication
$a / $b Division
if (condition)
{
/* Bloc d’instructions exécuté si la
condition est vraie */
} Optionne
else l
{
/* Bloc d’instructions exécuté si la
condition est fausse */
}
while (condition)
{
/* Bloc d’instructions répété tant que la
condition est vraie */
}
do {
/* Bloc d’instructions exécuté une fois
puis répété tant que la condition est
vraie */
} while (condition) ;
Équivalent à :
avant ;
while (condition)
{ /* Bloc d’instructions répété tant que la
condition est vraie */
fin_chaque_itération ;
}
switch ($aff) {
case 5 :
echo "aff vaut 5";
break;
case 20:
echo "aff vaut 20";
break;
default :
echo "a ne vaut ni 5 ni 20";
}
Cas rendus exclusifs si break présent pour chaque case
17:40:48 Programmation Web 36
TABLEAUX
Création / initialisation:
$tab1=array(12, "fraise", 2.5) ;
$tab2[] = 12 ;
$tab2[] = "fraise" ;
$tab2[] = 2.5 ;
$tab3[0] = 12 ;
$tab3[1] = "fraise" ;
$tab3[2] = 2.5 ;
17:40:48 Programmation Web 39
Tableaux associatifs : syntaxe
$tab5["annee"
annee ] = 2017 ;
2017
$tab5["langage"
langage ] = "PHP" ;
PHP
$tab5["version"
version ] = 5 ;
$tab5["editeur"
editeur ] = "sublime" ;
sublime
$tab6
tab6 = array(
"annee“
annee => => 2017,
2017
"langage"
langage =>
=> "PHP",
PHP
"version"
version =>
=> 5,
"editeur"
editeur =>
=> "sublime“
sublime
) ;
La fonction unset() permet de détruire une variable dans votre programme.
Traitement des données de formulaires
Client
Réseau Navigateur
•HTML
nomPers=robert
•JavaScript
•CSS
<html>
<head>
Serveur
<title>bonjour</title> nomPers
</head>
Serveur
<bodyWeb
> <?php
Bonjour robert ! $html = <<<HTML
</body> <html>
</ html> PHP <head><title>bonjour</title></head>
Module <body>
HTML;
robert
$html .= "Bonjour ".$_GET['nomPers']." !\n" ;
echo $html . "</body>\n</html>" ;
Fonctionnalités présentes / absentes
<?php
try {
$dbh = new PDO('mysql:host=h;dbname=db',
$user, $pass) ;
…
$dbh = null ;
}
catch (PDOException $e) {
echo "<p>Erreur: ".$e->getMessage() ;
die() ;
}
?>
<?php
$requete = "SELECT * FROM clients";
$resultat = $pdo->query($requete);
+--------+------------------------------------+
| mor_id | mor_nom |
+--------+------------------------------------+
| 872 | With A Little Help From My Friends |
| 873 | The Letter |
| 874 | Marjorine |
| 875 | Midnight Rider |
| 876 | You Are So Beautiful |
| 877 | Feelin' Allright |
| 878 | Cry Me A River |
...
$data = $resultat->fetchAll(PDO::FETCH_NUM);
$data = $resultat->fetchAll(PDO::FETCH_BOTH);
$data = $resultat->fetchAll(PDO::FETCH_OBJ);
HTTP/1.1 200 OK
Set-Cookie: Id=1212; path=/;
HTTP/1.1 200 OK
…
Avantages :
Rappelle au serveur des informations sur le client
L'échange de la données dans le sens
serveur client est limité au dépôt du cookie
Ne nécessite pas de modifier les pages HTML
Compatible avec les formulaires
Le cookie a une durée de validité
Inconvénients :
Les données circulent en permanence dans le sens
client serveur
Les données circulent en clair sur le réseau
La quantité de données doit être limitée
17:40:49 Programmation Web 72
Cookie
Démarrer session Client 1
id : B
A
Cookie
Réseau id : A
Serveur
Set-Cookie:
Cookie:
GET …
OK: / … …
A B
Client 2
Données de
Cookie
session pour A
B
id : B
SetCookie("variable1","valeur1");
SetCookie("variable2","valeur2");
Vérifier la présence d'un cookie :
tableau associatif superglobal $_COOKIE
ex : cookie ‘prenom' $_COOKIE[‘prenom']
Utilisation
bonjour() ;
Bonjour cher inconnu
bonjour("Mohamed") ;
Bonjour cher Mohamed
17:40:49 Programmation Web 81
Définition de fonctions fréquemment utilisées
espaces.
Calculer le nombre de caractère sans compter
Resultat :
Jour : 06
Mois : 05
Année : 2017
Resultat :
Nom utilisateur : med
Nom de domaine : gmail.com
Changement de casse :
strtoupper ,strtolower, ucfirst et lcfirst
string strtoupper(string chaine)
string strtolower (string chaine)
string ucfirst(string chaine
string lcfirst(string chaine)
17:40:50 91
Fonctions de lecture/écriture
Fichier Lecture
Curseur r
Écriture avec
Fichier
remplacement
Curseur r+
Écriture avec
Fichier
destruction
Curseur w
Écriture avec
Fichier
ajout seul
Curseur a
17:40:50 92
Fonctions de lecture/écriture
Mode Description
'r' Lecture, curseur au début
'r+' Lecture/écriture, curseur au début
'w' Écriture, curseur au début, RAZ
'w+' Lecture/écriture, curseur au début, RAZ
'a' Écriture, curseur à la fin, fseek HS
'a+' Lecture/écriture, curseur à la fin, fseek HS
'x' Création, écriture, échec si existe
'x+' Création, lecture/écriture, échec si existe
ex : $fp = fopen("index.html", 'r+') ;
17:40:50 93
Exercice de synthèse
17:40:50 94
Fonctions tableau
17:40:50 95
Fonctions tableau
mixed array_pop(array tab)
Retire un élément de la fin du tableau.
Exemple : retirer le dernier élément du tableau $data :
17:40:50 96
Fonctions tableau
mixed array_pop(array tab)
Retire un élément de la fin du tableau.
Exemple : retirer le dernier élément du tableau $data :
17:40:50 97
Fonctions tableau
void sort(array tab)
Trie le tableau.
Exemple : $temp = array("casa" => 30, "settat" => 29 , "rabat" => 28);
void asort(array tab)
Trie un tableau en ordre, en conservant les index.
int ksort(array tab)
Trie un tableau suivant les clés.
17:40:50 98
Exercice de synthèse
$salles = array( "1" => "renaissance" ,
"2" => "visioconference" ,
"3" => "amphi A" );
99
ENVOYER ET RECEVOIR DES
EMAILS
17:40:50 101
Fonction ouverture flux IMAP
object imap_check ( resource $imap_stream )
17:40:50 103
Fonction Récupération des messages
array imap_fetch_overview (resource $imap_stream,
string $sequence)
Lit les en-têtes des courriers électroniques de la
séquence sequence et retourne un sommaire de leur
contenu.
Retourne un tableau d'objets décrivant l'en-tête de chaque
message. Les propriétés possibles sont :
subject : le sujet du message
from : l'expéditeur
to : le destinataire
date : la date d'expédition
size : la taille en octets
uid : UID du message dans la boîte aux lettres
msgno : le numéro de séquence du message dans la boîte
….
17:40:50 104
Fonction Télécharger le corps d'un message
17:40:50 105
Fonction mails envoyées
bool imap_mail ( string $to , string $subject , string $mes
sage )
imap_mail() permet d'envoyer des mails avec une
gestion correcte des destinataires Cc et Bcc.
array imap_list ( resource $imap_stream , string $ref , str
ing $pattern )
Lit la liste des boîtes aux lettres.
17:40:50 106
Exercice de Synthèse
17:40:50 107
FPDF ET EXCEL
17:40:50 109
FORMAT JSON
& API PHP
17:40:50 111
Format JSON
JSON se base sur deux structures :
Une collection de couples nom/valeur. { "cle": "valeur" }
Les tableaux de valeurs ordonnées. [ "valeur1" , "valeur2" ]
17:40:50 112
Fonction json_decode
json_decode ( string $json [, bool $assoc = false)])
Récupère une chaîne encodée JSON et la convertit en une
variable PHP.
Exemple :
Afficher la valeur de ville
$data_entite = '{ "ville": "settat" }';
17:40:50 113
Fonction json_decode
Décoder le contenue de $data ci-dessous
17:40:50 114
Fonction json_decode
string file_get_contents ( string $filename );
Lit tout un fichier dans une chaîne
Exemple :
Développer une page qui affiche la ville du visiteur en utilisant son
adrèsse ip;
17:40:50 115
Fonction json_decode
Exemple :
Afficher les compétitions
17:40:50 116
Fonction json_encode
String json_encode ( mixed $value)
Retourne la représentation JSON d'une valeur
Exemple
Convertir en format json le tableau suivant
$data = array(
"prenom" => "med",
"age" => 23
);
17:40:50 117
API échange base de données
17:40:50 118
API échange base de données
Les lignes dont le champ est égale à valeur :
http://localhost/api.php/table?filter=champ,eq,valeur
http://localhost/api.php/table?filter=id,le,1
17:40:50 119
API Ajout base de données
CURL : est une bibliothèque qui permet de communiquer avec des sites distants.Par
exemple d'envoyer une requête POST, ...
$data = array(‘liste des champs, valeurs à inserer’);
Exécuter la requête
$result = curl_exec($ch);
17:40:50 120
API modif base de données
$data = array(‘liste des nouvelles données’);
Créer la représentation JSON du tableau de données
$data_string = json_encode($data);
Cette option précise qu’il s’agit d’un update et non pas un insert
curl_setopt($ressource, CURLOPT_CUSTOMREQUEST, 'PUT');
Exécuter la requete
$result = curl_exec($ch);
17:40:50 121
API envoi SMS
$data = array(
"num" => "0611111111",
"message" =>" test ok"
);
Exécuter la requete
$result = curl_exec($ch);
17:40:50 122
API envoi SMS
Exercice de synthèse :
Développer un système d’envoi de SMS automatique.
Texte du message : Joyeux anniversaire ……..
Date d’envoi : jour de l’anniverssaire
Heur d’envoi : 00H 01
17:40:50 123
AJAX