1 Introduction
1.1 Définition
1.2 Historique
1.3 Utilisation pratique
1.4 Pages statiques vs pages dynamiques
1.5 Scripts CGI
1.6 Pages dynamiques et PHP
1.7 Pour quoi préférer PHP à d’autres langages comme ASP ?
1.8 Ce que vous devez déjà connaître
1.9 Le nécessaire serveur
1.10 Le nécessaire client
1.11 Le respect des standards
2 Bases: Présentation
2.0.1 Syntaxe de base
2.1 Intégration à HTML
2.2 Séparateur d’instructions
2.3 Bloc d’instructions
2.4 Commentaires
3 Travailler avec des variables
3.1 Déclarer une variable
3.2 Portée des variables
3.3 Variables prédéfinies
3.4 Variables dynamiques
3.5 Types de variables
3.5.1 booléens
3.5.2 Entiers
3.5.3 Virgule flottante
3.5.4 Chaînes de caractères
3.5.5 Les tableaux
3.5.6 La variable objet
3.6 Les constantes
3.7 Obtenir le type d’une variable
3.8 Définir et supprimer une variable
4 Les opérateurs
4.1 La précédence des opérateurs
4.2 Opérateurs arithmétiques
4.3 Opérateurs d’assignation
4.4 Opérateurs sur les bits
4.5 Opérateurs de comparaison
4.6 Opérateur d’erreur
4.7 Opérateur d’exécution
4.8 Opérateurs d’incrémentation / décrémentation
4.9 Opérateurs logiques
4.10 Opérateurs de chaînes
4.11 Opérateur de tableaux
5 La notion d’expression
6 Les structures de contrôle
6.1 if
6.2 while
6.2.1 while classique
6.2.2 do while
6.3 for
6.4 foreach
6.5 break et continue
6.6 switch
6.7 return
6.8 require et include (_once)
7 Les fonctions
7.1 Syntaxe et portée
7.2 Arguments
7.3 Valeur de retour
7.4 Fonction sinternes
8 Gestion des formulaires en PHP
8.1 GET et POST
8.2 Récupération par tableau
8.3 Récupération directe
8.4 Utiliser des tableaux
9 Date et heure
9.1 Localisation
9.2 Récupérer la date et l’heure
9.2.1 date()
9.2.2 date locales trftime()
9.2.3 Retour par tableau get date()
9.2.4 L’heure localtime()
9.3 Récupérer n’importe quelle date
10 MySQL
10.1 Présentation
10.2 Outils
10.2.1 Php My Admin
10.2.2 My sqlCC
10.3 Créer une base
10.4 Utilisateurs et droits
10.5 Créer et modifier des tables
10.5.1 Types Numériques
10.5.1.1 Type sentiers
10.5.1.2 Types réels (flottants)
10.5.1.3 Types booléens
10.5.2 Types caractères
10.5.2.1 Types CHAR
10.5.2.2 Types TEXT
10.5.2.3 Type ENUM
10.5.2.4 Type SET
10.5.3 Types date
10.5.3.1 Formatssupportés
10.5.3.2 Type DATE TIME
10.5.3.3 Type DATE
10.5.3.4 Type TIME STAMP
10.5.3.5 Type TIME
10.5.3.6 Type YEAR
10.5.4 Création: Syntaxe SQL
10.5.5 Types de tables (My ISAM et InnoDB)
10.5.6 Index FULL TEXT
10.5.6.1 Création
10.5.6.2 Recherche
10.5.6.3 Recherche booléenne
10.6 My SQL et PHP
10.6.1 Connexion à une base de données
10.6.1.1 Connexion au serveur
10.6.1.2 Choix d’une base
10.6.1.3 Fermeture d’une connexion
10.6.1.4 Séquence complète pour une base
10.6.2 Les requêtes
10.6.2.1 Exécuter une requête
10.6.2.2 Nombre de lignes affectées
10.6.2.3 Nombre de lignes retournées
10.6.2.4 Récupérer les résultats
10.6.2.5 Insertion avecauto-incrément
10.6.3 Récupération des erreurs
11 Le système de fichiers
11.1 Travail sur les fichiers
11.1.1 Ouverture
11.1.2 Lecture
11.1.2.1 fgets()
11.1.2.2 fread()
11.1.2.3 fscanf()
11.1.2.4 fgetc()
11.1.2.5 fgetss()
11.1.2.6 fgetcsv()
11.1.2.7 Renvoyer un fichier par la sortie standard
11.1.3 Ecriture
11.1.4 Déplacement
11.1.4.1 fseek()
11.1.4.2 ftell()
11.1.4.3 rewind()
11.1.5 Fin de fichier
11.1.6 Fermeture
11.2 Travail sur les répertoires
11.2.1 Répertoire actuel
11.2.2 Se déplacer
11.2.3 Ouvrir, lister, fermer
11.2.4 Récupérer toutes les entrées
11.3 Travailsur lesystèmedefichiers
11.3.1 Informations sur le fichier
11.3.2 Actions sur les fichiers et répertoires
11.4 Upload de fichiers
12 Travail sur chaînes
12.1 Fonctions pour code HTML et MySQL
12.1.1 Gestion des caractères verrouillés
12.1.2 balises et caractères spéciaux HTML
12.2 Fonctions texte générales
12.2.1 Découper une chaîne
12.2.2 Rechercher et comparer
13 Sessions et cookies
13.1 Les cookies
13.1.1 Création
13.1.2 Accès
13.1.3 Suppression
13.2 Identification HTTP
13.2.1 Connexion
13.2.2 Déconnexion
13.3 Sessions PHP
13.3.1 Principe
13.3.2 Utilisation
13.3.2.1 Ouverture
13.3.2.2 Variables de session
13.3.3 Expiration de la session
13.3.4 Changer l’accès par défaut
14 Images
14.1 Pré-requis importants
14.2 Créer une image
14.2.1 Types possibles
14.2.2 Création
14.2.2.1 Nouvelle image dynamique
14.2.2.2 Récupération d’une image existante
14.2.3 Publication
14.2.4 Chargement via une autre page
14.3 Travailler sur les Images
14.3.1 Récupérer des informations
14.3.2 Les couleurs
14.3.3 Dessin
14.3.3.1 Remplissage
14.3.3.2 Point
14.3.3.3 Ligne
14.3.3.4 Rectangle
14.3.3.5 Cercle, ellipse
14.3.3.6 Polygones
14.3.3.7 Texte simple
15 La programmation objet
15.1 Structure
15.2 Création d’un objet
15.3 Accès aux membres
15.3.1 PHP4 et5
15.3.2 PHP5
15.4 L’opérateur
15.5 Les variables, protection
15.5.1 PHP4.x
15.5.2 PHP5.x
15.5.2.1 Protection des variables et fonctions
15.5.2.2 attributs et méthodes statiques
15.5.2.3 constantes de classe
15.6 Héritage et polymorphisme
15.7 Les mots-clésparent et self
15.8 Constructeurs
15.8.1 PHP4 et5
15.8.2 PHP5
15.9 Constructeurs et classes dérivées
15.9.1 PHP4 et5
15.9.2 PHP5
15.10 Destructeur
15.10.1 PHP4
15.10.2 PHP5
15.11 Affectation d’objets
15.11.1 Code commun
15.11.2 PHP4
15.11.3 PHP5
15.12 Comparaison d’objets
15.12.1 PHP4
15.12.2 PHP5
16 Nouveauté sen PHP5
16.1 Les objets
16.1.1 La fonction__autoload
16.1.2 Les classes abstraites
16.1.3 Classes, méthodes et variables finales
16.1.4 Les interfaces objet
16.1.5 Gestion dynamique des méthodes et attributs
16.1.6 Les itérations d’objets
16.1.7 Type hinting
16.2 Les exceptions
16.2.1 try. catch
16.2.2 Déclenchement avec throw
16.2.3 classe Exception et classes personnalisées
16.2.4 PHP: Erreur ou Exception?
16.2.5 Exception par défaut
17 Sauvegarder ses objets
17.1 Cas d’une session
17.2 Autres cas
1 Introduction
1.1 Définition
PHP est un langage de script HTML exécuté du côté du serveur. Il veut dire « PHP : Hypertext Preprocessor ». Sa syntaxe est largement inspirée du langage C, de Java et de Perl, avec des améliorations spécifiques. Le but du langage est d’écrire rapidement des pages HTML dynamiques.
1.2 Historique
L’origine de PHP remonte à 1995 quand Rasmus Lerdorf a créé PHP/FI, une librairie de scripts Perl utilisés pour la publication de son CV sur son site personnel. Au fur et à mesure des évolutions, la librairie a été portée en C et agrémentée de nouvelles fonctionnalités pour créer des pages dynamiques simples pour le web et accéder à quelques sources de données. PHP/FI signifie Personal Home Page/Forms Interpreter.
PHP/FI 2.0 sort en 1997, toujours développé par une seule personne. C’est le succès : 50000 sites (1% des noms de domaines) disent l’utiliser ou le supporter. Les contributeurs affluent.
PHP 3.0 sort en juin 1998, c’est la première version développée conjointement par Rasmus Lerdorf, Andi Gutmans et Zeev Suraski et entièrement réécrite (les versions précédentes étaient trop lentes pour une application commerciale). Outre les performances, PHP 3 est modulaire et extensible, permettant de lui greffer des API supplémentaires, ce qui n’a pas manqué avec le support de nombreuses bases de données, de formats et de protocoles, une syntaxe plus cohérente et un support basique de l’objet. Il a été installé sur 10% du parc mondial des serveurs web avec des dizaines de milliers de développeurs et des centaines de milliers de sites.
1.3 Utilisation pratique
– Forums et Messageries
– Commerce électronique
– Banque / Comptes en ligne
– Publication en ligne
– Moteurs de recherche
– Tout ce que vous voulez, (sauf les jeux)
Résumons quelques sigles que nous allons utiliser par la suite.
• HTML : Hypertext Markup Language
• PHP : People Hate Perl… Non : PHP, Hypertext PreProcessor
1.4 Pages statiques vs pages dynamiques
Une page statique et une page écrite directement en HTML. Elle peut éventuellement incorporer du code Javascript lui donnant un semblant de ‘dynamisme’ mais uniquement du côté du navigateur et des données locales.
Pour des traitements plus lourds nécessitant l’accès à une base de données, un formatage de tableau en fonction de résultats, une recherche poussée, du graphisme, il faut passer par des pages dynamiques et par un langage qui sera exécuté du côté du serveur : ASP sur les serveurs Microsoft/IIS, Perl, PHP…
1.5 Scripts CGI
PHP peut être utilisé comme langage CGI. Pour rappel, un script ou programme CGI est un programme comme un autre mais dont la sortie est dédiée à un navigateur, par exemple un programme shell, C ou Perl qui sort du HTML. PHP étant un langage script comme un autre on peut l’utiliser dans ce cas, mais ce n’est pas forcément le mieux.
1.6 Pages dynamiques et PHP
PHP est un langage Server Side ou côté serveur. Lors du chargement d’une page PHP, c’est le serveur qui va lire, interpréter et exécuter le code. Puis il renvoie le résultat, généralement sous la forme de code HTML au navigateur. Ainsi le navigateur et l’utilisateur ne voient jamais le véritable
code PHP exécuté. De plus le résultat étant une page web classique en HTML, pas besoin d’installer sur le client des composants spécifiques (java, …). Il n’y a donc pas de notion de vitesse d’exécution du côté du client, mais celle du serveur est prépondérante.
1.7 Pourquoi préférer PHP à d’autres langages comme ASP ?
ASP n’est pas entièrement un langage puisque ASP veut dire Active Server Page. ASP dispose bien entendu de ses propres API mais qui peuvent être accessibles via un autre langage. Il s’agit d’utiliser un langage (quelconque) pour créer des pages dynamiques. Nativement disponible avec IIS sous Windows, il ne l’est pas par défaut avec les autres systèmes ou serveurs web comme Apache. Il existe cependant des modules de compatibilité ASP pour Apache comme Apache::ASP qui reprend les API ASP en les étendant et en programmation PERL. Sous Windows, le code ASP se fait généralement en VBScript ou en Jscript. C’est aussi possible sous Unix/Linux et Apache, mais il faut alors se tourner vers des solutions commerciales (Sun One ASP, Instant ASP, …).
Cours programmation PHP (859 KO) (Cours PDF)