PHP MySQL. 1. Introduction à PHP



Documents pareils
Manuel d utilisation de Nomad Trading

GUIDE INSTALLATION IAS

Utiliser les activités de cours de Moodle : le Questionnaire

Les stratégies de Backup dans WSS V3

Charte de la gestion cookies groupe PVCP 25/09/2014

Nous proposons 3 syntaxes au choix :

Basculer entre un réseau domestique et celui de votre lieu de travail

ENREGISTEUR NUMERIQUE USB Guide utilisateur

(les caractères apparaissent en vidéo inversé : blanc sur fond

Directory List & Print (Pro) by Infonautics GmbH, Switzerland

Partage de documents entre tablettes et transfert de ressources

NOTICE POUR L IMPORT DU FICHIER «IACA» DANS CORRELYCE

Gestion des Prospects : Adresses à exporter

2. Trouvez la version du firmware que vous souhaitez télécharger dans la rubrique Boot From CD, correspondant à votre modèle de SSD.

KDJHU HQHUJ\ manuel de l'xwlolvdteur tebis

Meilleures pratiques en matière d'indexation de contenu. Mise à niveau à partir de versions antérieures à la version 6.5

[SIMULATEUR DE CREDIT IMMOBILIER]

Nouveautés apportées à l assessment-tool

CYBERLEARN COURS MOODLE. SUPPORT DE TRAVAIL Pour professeur-es et assistant-es d'enseignement

Catalogue de formation bureautique

PROPOSITION DE CREATION DE SITE INTERNET

Procédure d installation

Cible de Sécurité - Blancco DataCleaner+ v4.8

livraisons en centrale

Besoins informatiques Pricare et autres informations utiles pour le gestionnaire de réseau

GUIDE DE L UTILISATEUR

Serveur de FAX Réseau - Hylafax

SERVEUR HORUS NG dans les EPLE

Cet article décrit les spécifications d'installation et de configuration et explique étape par étape comment

Service de mobilité interbancaire - Règlement

Guide d aide à la rédaction d un essai

PHASE 1 : choix et définition du sujet du TM.

Il existe un format informatique appelé.csv (Comma-Separated Values, des valeurs séparées par des virgules).

Logiciel de gestion des inscriptions en CPGE

Pour répondre au besoin de sécurité juridique et de prévisibilité, la Loi type devrait traiter des questions suivantes:

Çi-dessous le livret du module de réservation de sièges. Via Thomascookagent.be (pour les agences)

Préparation de votre livre pour Kindle

Service de mobilité interbancaire - Règlement

A toutes les Directrices et à tous les Directeurs des établissements scolaires de l enseignement secondaire et secondaire technique

«NAVIGUER SUR INTERNET v 2» Support de formation tutoré «Réponses aux remarques les plus souvent posées»

Projet de renouvellement de l infrastructure informatique de la Mairie de Châtel-Guyon. Cahier des charges

Annexe 2 Annexe technique de la convention individuelle d habilitation «professionnel de l automobile»

En collaboration avec la direction territoriale du MFA

Dossier Spécial. Les 5 étapes pour vendre ACT! Apprendre à détecter un besoin en Gestion de Contacts

Contenu de version

LE TABLEAU DE BORD REMONTEE DES COMPTES. Outils de gestion prévisionnelle, d'analyse financière et du contrôle de gestion. TABLE DES MATIERES

Comme nous devons clôturer nos systèmes actuels avant la transition, veuillez noter les dates suivantes :

Développement d applications mobiles natives avec LongRange de LANSA

Processus des services

Guide pour la rédaction d une Spécification Technique de Besoin (STB)

Guide de l utilisateur

Annexe 1 Annexe technique de la convention d habilitation «expert en automobile»

Règlement de consultation

Note de cadrage de la version Apogée 4.10

Kluwer ERP Dashboard - VERO.

A.-M. Cubat Installation de PMB en ligne Page 1 Source :

Restitution. Enquête FNOGEC auprès des principaux éditeurs de logiciels. Mise en conformité aux normes SEPA

BOURSE EXPLO RA SUP (Région Rhône-Alpes) Toutes destinations-séjour académique et stage

Proposition de Veille Internet Campagnes Electorales 2012

Intégration «SugarCRM Asterisk» Ajouter la Téléphonie à votre CRM

ASSODESK.COM Aide en ligne

Article I - Objet. Article II - Conditions d'utilisation de la eboutique

Gestionnaire de Prêts Margill 4.1

LIVRE BLANC SEM. Google AdWords Le guide ultime du SEM pour votre Boutique en ligne

esil PROJET DE MODELISATION ORIENTEE OBJET INFORMATIQUE - 3 ANNEE

FINAL CUT PRO 7 / DIDACTICIEL / OUVERTURE DU PROGRAMME / REGLAGES / IMPORTATION / EXPORTATION / RACCOURCIS

Ville de Pierrefitte-sur-Seine Centre Technique Municipal

REGLEMENT COMPLET Tentez de gagner une tablette tactile

Laure FANJEAU 4 IMCO Classe 1. Dossier partiel Mobile-Marketing TRUFFAUT. Plus Belle sera la Terre. Monsieur DESCOUTURES

CAHIER DES CLAUSES TECHNIQUES PARTICULIERES

PREPARATION DE VOTRE PFMP Réalisé et testé par Laurence Martin, enseignante au LP du Toulois et chargée de mission en économie et gestion option vente

LOGICIELS ET BASES DE DONNÉES PROTECTION ET VALORISATION

Alcatel OmniPCX Office

Clip Industrie. Environnement & Architecture GPAO Clipper

Communiqué de lancement : Sage 100 Scanfact Version V15.50

Cegid Expert On Demand & Juridique On Demand. Juin 2015

Symantec Data Protection.cloud

Questions et réponses concernant l'assemblée générale 2015

Siège social : 12, rue Massue Vincennes cedex

Dossier de Presse. 1 ier guide Interactif pour créateurs et entrepreneurs

MIGRATION VERS L'OMNIPCX OFFICE R9.1

LES 3 PHASES DU PROJET EDI

Consultation restreinte

trak monitor Système de gestion de salles de charge HOPPECKE Vos avantages : Domaines d exploitation typiques Motive Power Systems

Formation Altium Designer par Transfer

REGLEMENT COMPLET «3D World Koksijde»

Vente de Capacités de Stockage de gaz du 13 mai 2015

votre lettre du vos références nos références votre correspondant date

Systèmes d information

- Le service aux tables. - Le service rapide & commande pour emporter. - Le service à l auto. - La livraison. o Voir le feuillet Livraison.

Environnement & Architecture GPAO Clipper

Fiche de projet pour les institutions publiques

Les conditions générales de vente du SERVICE ZADS CLOUD

Promotion Le défi des étoiles Aéroplan Q1. Qu est-ce que la promotion Le défi des étoiles Aéroplan?

Politique de sécurité de l information

Newsletter Printemps i n f o r m a t i q u e. Actualités Hesperia. 1) La course des 3 chances. 2) Du nouveau dans l équipe

PROCESSUS DE CERTIFICATION DES MONITEURS JE NAGE INFORMATIONS POUR LES MAITRE ÉVALUATEURS

Transcription:

PHP MySQL Ce tutrial a été cnçu pur expliquer le plus simplement et le plus clairement pssible la mise en œuvre de PHP et de la liaisn vers une base de dnnées gérée sus MySQL. Il se cantnne de façn délibérée aux éléments basiques du langage PHP. 1. Intrductin à PHP 1.1. Qu'est-ce que PHP? PHP pur Pre Hypertext Prcessr, est un langage de script exécuté par le serveur Web qui héberge le site (cmme les scripts CGI, ASP, ) et nn par la navigateur du visiteur (cmme une page Html, un script écrit en JavaScript u une applet Java qui s'exécutent directement sur vtre rdinateur...). La syntaxe du langage PHP est frtement inspirée de celles du langage C et du Perl. Ses principaux atuts snt : la gratuité et la dispnibilité du cde surce (PHP est distribué sus licence GNU GPL). sa richesse fnctinnelle : PHP cmprte plus de 1000 fnctins. la simplicité d'écriture des scripts (?). la dispnibilité sur le Web de nmbreux scripts PHP prêts à l'empli. la pssibilité d'inclure le script PHP au sein d'une page Html. la simplicité de liaisn avec des bases de dnnées. De nmbreux systèmes de base de dnnées snt supprtés, mais le plus utilisé avec le PHP est MySQL, un système de base de dnnées gratuit et dispnible sur les platefrmes Unix, Linux, et Windws. Ce langage de prgrammatin permet essentiellement de cnstruire des sites Web dynamiques, particulièrement lrsqu ils snt reliés à une base de dnnées. 1.2. Côté-client et côté-serveur Côté-client Dans vtre apprentissage des langages de publicatin sur le Web, vus avez avec le langage Html, le JavaScript u le VBscript utilisé des applicatins dites côté-client car elles snt utilisées en lcal par le navigateur (le client) de l'utilisateur final. Tutrial PHP - MySQL 2003 1

Détaillns ce qu'il se passe lrsque vus cnsultez une page Html dite statique : - Vtre navigateur envie l'adresse URL (Unifrm Ressurce Lcatr) que vus avez encdée. - Le serveur Web (l'rdinateur) qui héberge la page que vus demandez, va chercher le fichier demandé dans sn disque dur et vus envie la page Html telle qu'elle à vtre navigateur. - Vtre navigateur interprète les différents langages se truvant dans ce fichier (Html, JavaScript, CSS, etc.) et affiche la page. Côté-serveur Les langages utilisés côté-client snt, pur des raisns évidentes de sécurité, assez limitatifs. Les applicatins plus cmplexes sernt traitées dans l'espace plus sécurisé qu'est le serveur qui héberge le site Web. Les traitements snt alrs exécutés côté-serveur et seuls les résultats sernt envyés au navigateur de l'utilisateur. Détaillns ce qu'il se passe lrsque vus cnsultez une page Html dite dynamique : - Vtre navigateur envie l'adresse que vus avez encdée. - Le serveur Web cherche dans sn arbrescence si le fichier existe et si celui-ci prte une extensin recnnue cmme une applicatin PHP (.php,.php3,.phtml). Si c'est le cas, le serveur Web transmet ce fichier à PHP. - PHP interprète le fichier, c'est-à-dire qu'il va analyser et exécuter le cde PHP. Si ce cde cntient des requêtes vers une base de dnnées MySQL, PHP envie la requête SQL. La base de dnnées renvie alrs les infrmatins vulues au script qui peut les expliter (pur les afficher par exemple). - PHP cntinue d'interpréter la page, puis returne le fichier dépurvu du cde PHP (puisqu'il est exécuté) au serveur Web. - Le serveur Web renvie finalement le fichier au navigateur de l'utilisateur. Ce fichier ne cntient plus que du Html. Vus remarquez que le cde PHP s'exécute côté-serveur. Il n'y a ainsi plus aucune trace du cde PHP lrsque vus cnsultez le cde surce de la page dans vtre navigateur PHP, au cntraire du JavaScript ù le cde surce reste visible. Il est imprtant de nter : - que tut ce qui a trait à la présentatin de la page (culeur, plice, mise en frme du texte, etc..) est l'affaire du Html et des feuilles de style CSS. - que PHP n'a dnc rien à vir avec le design de vtre page. - que tut ce qui tuche au cmprtement du navigateur est du dmaine du JavaScript, lui aussi exécuté par le client. Tutrial PHP - MySQL 2003 2

1.3. Petite histire du PHP Le langage PHP a été mis au pint au début d'autmne 1994 par Rasmus Lerdrf. Ce langage de script lui permettait de cnserver la trace des utilisateurs venant cnsulter sn CV en ligne sur sn site, grâce à l'accès à une base de dnnées par l'intermédiaire de requêtes SQL. Ainsi, étant dnné que de nmbreux internautes lui demandèrent ce prgramme, Rasmus Lerdrf mit en ligne en 1995 la première versin de ce prgramme qu'il baptisa Persnal Smmaire Page Tls, puis Persnal Hme Page v1.0. Etant dnné le succès de PHP 1.0, Rasmus Lerdrf décida d'amélirer ce langage en y intégrant des structures plus avancées telles que des bucles, des structures cnditinnelles, et y intégra un package permettant d'interpréter les frmulaires qu'il avait dévelppé (FI, Frm Interpreter) ainsi que le supprt de MySQL. C'est de cette façn que la versin 2 du langage, baptisée pur l'ccasin PHP/FI versin 2, vit le jur durant l'été 1995. Il fut rapidement utilisé sur de nmbreux sites (15000 fin 1996, puis 50000 en milieu d'année 1997). A partir de 1997, Zeev Suraski et Andi Gurmans rejignirent Rasmus pur frmer une équipe de prgrammeurs afin de mettre au pint PHP 3 (Stig Bakken, Shane Carave et Jim Winstead les rejignèrent par la suite). C'est ainsi que la versin 3.0 de PHP fut dispnible le 6 juin 1998. A la fin de l'année 1999, une versin 4 de PHP est apparue... 2. Les utils nécessaires 2.1. Un hébergeur PHP-MySQL Pur utiliser les bases de dnnées avec le du PHP - MySQL, il faut que vtre hébergeur accepte ces techniques et vus permette de gérer vtre prpre base de dnnées. Ce sera généralement le cas des serveurs qui fnctinnent sus Unix. Pur l'accès à une base de dnnée, cela dépendra suvent de vtre type d'abnnement. Tutrial PHP - MySQL 2003 3

Si vtre hébergeur fnctinne sus Windws, il y a peu de chances qu'il accepte le PHP et il faudra dans ce cas vus turner vers les techniques spécifiques de Windws pur ce genre de manipulatins, sit ASP et SQL. 2.2. EasyPHP en lcal Cependant pur tester vs scripts, il deviendrait très vite pesant de "uplader" à chaque fis vs fichiers par FTP. C'est purqui installer un serveur Web en lcal sur sn rdinateur se révèle indispensable pur tester vs scripts en direct. Vus purrez ainsi prgrammer en PHP sans avir besin d'être cnnecté à Internet, ce qui peut être intéressant pur les persnnes ne dispsant pas (encre) de cnnexins au frfait. Il existe un util incnturnable pur le PHP, c'est EasyPHP (www.easyphp.rg). Ce prgramme permet d'installer autmatiquement en quelques secndes un envirnnement de travail cmplet : sit un serveur Apache, PHP, MySql, PHPMyAdmin, etc. Vus purrez ainsi tester lcalement sus Windws vs scripts PHP et vs bases de dnnées. Sn installatin ne devrait pas pser de prblèmes. Sinn de nmbreux articles explicatifs et autres FAQs vus attendent sur le Web. Ainsi vus truverez, par exemple, des slutins à vs prblèmes éventuels à l'adresse www.asp-php.net/tutrial/asp-php/installatin.php 2.3. Un éditeur de texte Un script PHP est, cmme la plupart des langages de prgrammatin, un simple fichier texte (ASCII 7 bits sans caractères accentués). Ainsi, un simple éditeur de texte cmme le Blc-ntes (Ntepad) de Windws fera très bien l'affaire. 2.4. Une dcumentatin PHP Lrsqu'n écrit des sites dynamiques en PHP, n ne gardera pas en tête les 1000 et quelques fnctins du PHP. On fnctinne de façn pragmatique. On retient bien entendu les fnctins et règles de base (vir ce tutrial) mais n se plngera dans la dcumentatin pur les pints plus spécifiques. Tutrial PHP - MySQL 2003 4

3. L'implantatin du cde 3.1. Implantatin au sein du cde Html Pur que le script sit interprété par le serveur, deux cnditins snt nécessaires : le fichier cntenant le cde dit avir l'extensin.php et nn.html. le cde PHP cntenu dans le cde HTML dit être délimité par les balises et. Pur des raisns de cnfrmité avec certaines nrmes (XML et ASP par exemple), plusieurs balises peuvent être utilisées pur délimiter un cde PHP :... La plus académique. Obligatire si vus envisagez d'inclure du PHP dans des fichiers XML u XHTML. <? La plus utilisée. Cette ntatin abrégée dit être activée dans le fichier de cnfiguratin php.ini. Ce qui est généralement le cas. <script language="php"> </script> La plus lngue à la façn de la déclaratin des scripts JavaScript u VBscript. <%php %> Pur le cmpatibilité avec ASP. 3.2. Un exemple de script simple On uvre le Blc-ntes de Windws et n encde ce qui suit : <html> <head> <title>exemple</title> </head> <bdy> ech "Bnjur"; </bdy> </html> On ntera à ce stade que la fnctin ech permet d'afficher une chaîne de caractères délimitée par des guillemets. On enregistre le fichier sus le nm "exemple.php" et dans le dssier www de EasyPHP (Prgram Files Easyphp www). Tutrial PHP - MySQL 2003 5

On lance EasyPHP pur mettre en œuvre le trinôme Apache - PHP - MySQL qui activera ainsi le réseau lcal. On uvre ensuite Micrsft Internet Explrer. Après avir encdé l'adresse de la page sit http://lcalhst/exemple.php u de façn équivalente http://127.0.0.1/exemple.php, n btient ainsi dans le navigateur. S'il nus prend la fantaisie d'afficher la surce dans le navigateur (pur Internet Explrer Surce), vus remarquerez que tute trace de vtre script en PHP a disparu. Affichage Pur agrémenter la présentatin du texte, n utilise du cde Html. En effet, PHP ne s'ccupe pas du frmatage du texte car il délègue en quelque srte ce travail au Html. <html> <head> <title>exemple</title> </head> Tutrial PHP - MySQL 2003 6

<bdy> ech "<p align=center><b><fnt face=arial size=5 clr=red>bnjur</fnt></b></p>"; </bdy> </html> 4. Les caractéristiques du langage PHP 4.1. L'interprétatin du cde Un cde PHP (celui cmpris entre les délimiteurs et ) est un ensemble d'instructins se terminant chacune par un pint-virgule (cmme en langage C). En PHP, tutes les instructins divent se terminer par un pint-virgule. Le langage PHP se mntre sur ce pint nettement plus strict que le JavaScript. Lrsque le cde est interprété, les espaces, returs charit et tabulatin ne snt pas pris en cmpte par le serveur. Il est tut de même cnseillé d'en mettre afin de rendre le cde plus lisible (pur vus, puisque les utilisateurs ne peuvent lire le cde surce: il est interprété). 4.2. Les cmmentaires Une autre façn de rendre le cde plus cmpréhensible cnsiste à insérer des cmmentaires, des lignes qui sernt tut simplement ignrées par le serveur lrs de l'interprétatin. Pur ce faire, il est pssible, cmme en langage C, d'utiliser des balises qui vnt permettre de délimiter les lignes d'explicatins afin que l'interpréteur les ignre et passe directement à la suite du fichier. Ces délimiteurs snt /* et */ Un cmmentaire sera dnc nté de la façn suivante : /* Vici un cmmentaire! */ Il y a tutefis quelques règles à respecter : Tutrial PHP - MySQL 2003 7

Les cmmentaires peuvent être placés n'imprte ù à l'intérieur des délimiteurs de script PHP. Les cmmentaires ne peuvent cntenir le délimiteur de fin de cmmentaire (*/). Les cmmentaires ne peuvent être imbriqués. Les cmmentaires peuvent être écrits sur plusieurs lignes. Les cmmentaires ne peuvent pas cuper un mt du cde en deux. Une autre façn d'ajuter des cmmentaires est le duble slash (//) qui permet de mettre, sur une seule ligne, tut ce qui se situe à drite de ce symble en cmmentaires. // Vici un cmmentaire! 4.3. Typlgie La manière d'écrire en langage PHP a sn imprtance. Le langage PHP est par exemple sensible à la casse (en anglais case sensitive), cela signifie qu'un nm cntenant des majuscules est différent du même nm écrit en minuscules. Tutefis, cette règle ne s'applique pas aux fnctins, les spécificatins du langage PHP précisent que la fnctin print peut être appelée print(), Print() u PRINT(). 5. Les variables en PHP 5.1. Cncept de variable avec PHP Une variable est un bjet repéré par sn nm, puvant cntenir des dnnées, qui purrnt être mdifiées lrs de l'exécutin du prgramme. Les variables en langage PHP peuvent être : des scalaires (variables nrmales) des tableaux des tableaux assciatifs Quelque sit le type de variable, sn nm dit bligatirement être précédé du caractère dllar ($). Cntrairement à de nmbreux langages de prgrammatin, cmme le langage C, les variables en PHP n'nt pas besin d'être déclarées, c'est-à-dire que l'n peut cmmencer à les utiliser sans en avir averti l'interpréteur au préalable. Ainsi, si la variable existait précédemment, sn cntenu est utilisé, sinn l'interpréteur lui affectera la valeur en lui assignant 0 par défaut. De cette façn si vus ajutez 3 à une nuvelle variable (nn définie plus haut dans le cde), sa valeur sera 3. 5.2. Définitin des variables Avec PHP, les nms de variables divent répndre à certains critères : un nm de variable dit cmmencer par une lettre (majuscule u minuscule) u un "_" (pas par un chiffre). un nm de variables peut cmprter des lettres, des chiffres et le caractère _ (les espaces ne snt, bien entendu, pas autrisés!). Quelques exemples : Tutrial PHP - MySQL 2003 8

Nm de variable crrect $Variable $Nm_De_Variable $nm_de_variable $nm_de_variable_123 $nm_2_variable Nm de variable incrrect Raisn $Nm de Variable cmprte des espaces $123Nm_De_Variable cmmence par un chiffre $tt@mailcity.cm caractère spécial @ $Nm-de-variable signe - interdit nm_de_variable ne cmmence pas par $ Les nms de variables snt sensibles à la casse (PHP fait la différence entre majuscules et minuscules), il faut dnc veiller à utiliser des nms cmprtant la même casse! 5.3. Variables scalaires Le langage PHP prpse tris types de variables scalaires: Entiers : nmbres naturels sans décimale (sans virgule). Réels : nmbres décimaux (n parle généralement de type duble, car il s'agit de nmbre décimaux à duble précisin). Chaînes de caractères : suite de caractères. Il n'est pas nécessaire en PHP de typer les variables, c'est-à-dire de définir leur type, il suffit de leur assigner une valeur pur en définir le type : Entiers : nmbre sans virgule. Réels : nmbres avec une virgule (en réalité un pint). Chaînes de caractères : ensembles de caractères entre guillemets simples u dubles. Instructin $Variable = 0; $Variable = 12; $Variable = 0.0; $Variable = 12.0; $Variable = "0.0"; $Variable = "Bnjur tut le mnde"; Type de la variable type entier type entier type réel type réel type chaîne type chaîne Exemple : $a = 1; $b = 3.34; $c = "Le mnde entier"; ech $a,"<br>",$b,"<br>",$c; Tutrial PHP - MySQL 2003 9

Il existe des caractères repérés par un cde ASCII spécial permettant d'effectuer des pératins particulières. Ces caractères peuvent être représentés plus simplement en langage PHP grâce au caractère '\' suivi d'une lettre, qui précise qu'il s'agit d'un caractère de cntrôle. Caractère Descriptin \" guillemet \' apstrphe \\ barre blique inverse (backslash) \r retur charit \n retur à la ligne \t tabulatin D'une part, certains de ces caractères ne purraient pas être représentés autrement (un retur à la ligne ne peut pas être représenté à l'écran). D'autre part, les caractères repris par le cde du langage PHP cmme \ et " ne peuvent pas faire partie d'une chaîne de caractère, pur des raisns évidente d'ambiguïté. 5.4. Variables tableaux Les variables, telles que nus les avns vues, ne permettent de stcker qu'une seule dnnée à la fis. Or, pur de nmbreuses dnnées, des variables distinctes seraient beaucup trp lurdes à gérer. Heureusement, PHP prpse des structures de dnnées permettant de stcker l'ensemble de ces dnnées dans une "variable cmmune".ce snt les variables tableaux. Ainsi, pur accéder à ces valeurs, il suffit de parcurir la variable de type cmplexe cmpsée de "variables" de type simple. Les tableaux stckent des dnnées sus frme de liste. Les dnnées cntenues dans la liste snt accessibles grâce à un index (un numér représentant l'élément de la liste). Cntrairement à des langages tels que le langage C, il est pssible de stcker des éléments de types différents dans un même tableau. Ainsi, pur désigner un élément de tableau, il suffit de faire suivre au nm du tableau l'indice de l'élément entre crchets : $Tableau[0] = 12; $Tableau[1] = "Bnjur"; Avec PHP, il n'est pas nécessaire de préciser la valeur de l'index lrsque l'n veut remplir un tableau, car il assigne la valeur 0 au premier élément (si le tableau est vide) et incrémente les indices suivants. Le cde précédent est équivalent à : Tutrial PHP - MySQL 2003 10

$Tableau[] = 12; $Tableau[] = "Bnjur"; Il est imprtant de nter que : - les indices de tableau cmmencent à zér. - tus les types de variables peuvent être cntenus dans un tableau. Une autre façn de créer un tableau est de passer par l'élément du langage PHP, array(). $Tableau = array(12,"bnjur"); Lrsqu'un tableau cntient d'autres tableaux, n parle de tableaux multidimensinnels. Il est pssible de créer directement des tableaux multidimensinnels en utilisant plusieurs paires de crchets pur les index (autant de paires de crchets que la dimensin suhaitée). Par exemple, un tableau à deux dimensins purra être déclaré cmme suit : $Tableau[0][0] = 12; $Tableau[0][1] = "lehtml"; $Tableau[1][0] = 1245.652; $Tableau[1][1] = "Au revir"; 5.5. Variables tableaux assciatifs PHP permet l'utilisatin de chaînes de caractères au lieu de simples entiers pur définir les indices d'un tableau, n parle alrs de tableaux assciatifs. Cette façn de nmmer les indices peut parfis être plus facile à utiliser. $Auteur["Nm"] = "Van Lancker"; $Auteur["Prenm"] = "Luc"; $Auteur["Cde_Pstal"] = 7700; Ou avec array() : $Auteur = array(nm=>"van Lancker",Prenm=>"Luc",Cde_Pstal=>7700); 5.6. Prtée (visibilité) des variables Seln l'endrit ù n déclare une variable, celle-ci purra être accessible (visible par PHP) partut dans le cde u bien uniquement dans une prtin cnfinée de celui-ci (à l'intérieur d'une fnctin par exemple), n parle alrs de la prtée (u la visibilité) d'une variable. Lrsqu'une variable est déclarée dans le cde même, c'est-à-dire à l'extérieur de tute fnctin u de tut blc d'instructin, elle est accessible de partut dans le cde (n'imprte quelle fnctin du prgramme peut faire appel à cette variable). On parle alrs de variable glbale. Lrsque l'n déclare une variable à l'intérieur d'un blc d'instructins (entre des acclades), sa prtée se cnfine à l'intérieur du blc dans lequel elle est déclarée. On parle alrs de variable lcale. D'une manière générale il est préférable de dnner des nms différents aux variables lcales et glbales pur des raisns de lisibilité et de cmpréhensin du cde. Tutrial PHP - MySQL 2003 11

5.7. Définitin de cnstantes Une cnstante est une variable dnt la valeur est inchangeable lrs de l'exécutin d'un prgramme. Avec PHP, les cnstantes snt définies grâce à la fnctin define(). La syntaxe de la fnctin define() est la suivante: define("nm_de_la_variable", Valeur); Le nm d'une cnstante définie à l'aide de la fnctin define() ne dit pas cmmencer par le caractère $ (de cette façn aucune affectatin n'est pssible). 6. Les dates et heures PHP pssède de nmbreuses fnctins qui permettent de manipuler la date et l'heure sur le serveur qui exécute PHP. On peut utiliser ces fnctins pur frmater la date et l'heure de nmbreuses façns. N'ubliez pas que la date et l'heure affichées sernt celle du serveur (qui exécute le cde) et nn celle du visiteur (en JavaScript, c'est le navigateur sur le pste client qui interprète le cde et dnc affiche l'heure de l'rdinateur du visiteur). 6.1. La fnctin date() La fnctin date(frmat) returne une date sus frme d'une chaîne, au frmat demandé. Frmat Descriptin Exemple a "am" u "pm" minuscules pm A "AM" u "PM" majuscules PM d jur du mis 07 /12 D jur de la semaine en 3 lettres Mn F nm du mis May h heure (frmat 12 heures avec 0 en en-tête) 12 H heure (frmat 24 heures avec 0 en en-tête) 08 g heure (frmat 12 heures sans 0 en en-tête) 4 G heure (frmat 24 heures sans 0 en en-tête) 10 i minutes 44 J jurs du mis (pas de 0 en en-tête) 3 m mis de l'année (0 en en-tête) 04 M mis de l'année en 3 lettres jul n mis de l'année; pas de 0 en entête 4 s secndes 30 y année en 2 chiffres 02 Y année en 4 chiffres 2003 Par exemple : $date_du_jur = date("d-m-y"); ech "Nus smmes le ".$date_du_jur; 6.2. La fnctin getdate() Tutrial PHP - MySQL 2003 12

La fnctin getdate(champ) returne un tableau assciatif cntenant les infrmatins de date et d'heure avec les champs suivants : Champs Descriptin Exemple secnds secndes 23 minutes minutes 7 hurs heures de la jurnée de 0 à 23 16 mday jur du mis de 1 à 31 18 wday jur de la semaine de 0 à 6 5 mn mis de l'année 4 year année en 4 chiffres 2003 yday jur de l'année de 0 à 365 185 weekday nm du jur de la semaine (en anglais) Mnday mnth mis de l'année (en anglais) January Par exemple : $aujurdhui = getdate(); $mis = $aujurdhui['mnth']; $jur = $aujurdhui['mday']; $annee = $aujurdhui['year']; ech "$jur/$mis/$annee"; 7. Les pérateurs 7.1. Qu'est-ce qu'un pérateur? Les pérateurs snt des symbles qui permettent de manipuler des variables, c'est-à-dire effectuer des pératins, évaluer des variables, etc On distingue plusieurs types d'pérateurs : - les pérateurs de calcul - les pérateurs d'assignatin - les pérateurs d'incrémentatin - les pérateurs de cmparaisn - les pérateurs lgiques 7.2. Les pérateurs de calcul Les pérateurs de calcul permettent de mdifier mathématiquement la valeur d'une variable. Opérateur Dénminatin Effet Exemple Résultat + Additin Ajute deux valeurs $x+3 10 - Sustractin Sustrait deux valeurs $x-3 4 * Multiplicatin Multiplie deux valeurs $x*3 21 / Divisin Divise deux valeurs $x/3 2.3333333 = Opérateur d'affectatin Affecte une valeur à une variable $x=3 Met la valeur 3 à la variable $x Tutrial PHP - MySQL 2003 13

Exemple : $a = 8; $b = 3; ech $a + $b."<br>"; ech $a - $b."<br>"; ech $a * $b."<br>"; ech $a / $b."<br>"; 7.3. Les pérateurs d'assignatin Ces pérateurs permettent de simplifier des pératins telles que ajuter une valeur dans une variable et stcker le résultat dans celle-ci. Une telle pératins s'écrirait habituellement de la façn suivante par exemple: $x=$x+2 Avec les pérateurs d'assignatin il est pssible d'écrire cette pératin sus la frme suivante: $x+=2 Ainsi, si la valeur de x était 5 avant pératin, elle sera de 7 après Les pérateurs de ce type snt les suivants: Opérateur Effet += additin deux valeurs et stcke le résultat dans la variable (à gauche). -= sustrait deux valeurs et stcke le résultat dans la variable. *= multiplie deux valeurs et stcke le résultat dans la variable. /= divise deux valeurs et stcke le résultat dans la variable. %= dnne le reste de la divisin deux valeurs et stcke le résultat dans la variable. = Effectue un OU lgique entre deux valeurs et stcke le résultat dans la variable. ^= Effectue un OU exclusif entre deux valeurs et stcke le résultat dans la variable. &= Effectue un Et lgique entre deux valeurs et stcke le résultat dans la variable..= Cncatène deux chaînes et stcke le résultat dans la variable. 7.4. Les pérateurs d'incrémentatin Ce type d'pérateur permet d'augmenter u de diminuer, de façn cncise, une variable d'une unité. Ces pérateurs snt très utiles pur des structures telles que les bucles qui nt besin d'un cmpteur (variable qui augmente de un en un). Tutrial PHP - MySQL 2003 14

Un pérateur de type $x++ permet de remplacer des ntatins lurdes telles que $x=$x+1 u bien $x+=1 Opérateur Dénminatin Effet Syntaxe Résultat ++ Incrémentatin Augmente d'une unité la variable $x++ 6 (avec x = 5) -- Décrémentatin Diminue d'une unité la variable $x-- 4 (avec x = 5) Exemple avec a=8 et b=3 : $a = 8; $b = 3; $a++; ech $a."<br>"; $b--; ech $b."<br>"; 7.5. Les pérateurs de cmparaisn Ce type d'pérateur permet de cmparer la grandeur de deux dnnées. Opérateur Dénminatin Effet Exemple Résultat == pérateur d'égalité Cmpare deux valeurs et vérifie leur égalité $x==3 Returne 1 si $x est égal à 3, sinn 0 < pérateur d'inféririté stricte Vérifie qu'une variable est strictement inférieure à une valeur $x<3 Returne 1 si $x est inférieur à 3, sinn 0 <= pérateur d'inféririté > pérateur de supéririté stricte >= pérateur de supéririté!= pérateur de différence Vérifie qu'une variable est inférieure u égale à une valeur Vérifie qu'une variable est strictement supérieure à une valeur Vérifie qu'une variable est supérieure u égale à une valeur Vérifie qu'une variable est différente d'une valeur $x<=3 $x>3 $x>=3 $x!=3 Returne 1 si $x est inférieur à 3, sinn 0 Returne 1 si $x est supérieur à 3, sinn 0 Returne 1 si $x est supérieur u égal à 3, sinn 0 Returne 1 si $x est différent de 3, sinn 0 Tutrial PHP - MySQL 2003 15

Ne pas cnfndre l'pérateur d'égalité (==) avec le signe d'affectatin (=). 7.6. Les pérateurs lgiques (bléens) Ce type d'pérateur permet de vérifier si plusieurs cnditins snt vraies : Opérateur Dénminatin Effet Syntaxe u OR OU lgique Vérifie qu'une des cnditins est réalisée ((cnditin1) (cnditin2)) && u AND ET lgique Vérifie que tutes les cnditins snt réalisées ((cnditin1)&&(cnditin2)) XOR OU exclusif Oppsé du OU lgique ((cnditin1)xor(cnditin2))! NON lgique Inverse l'état d'une variable bléenne (returne la valeur 1 si la variable vaut 0, 0 si elle vaut 1) (!cnditin) 7.7. Autres pérateurs Les pérateurs suivants ne peuvent pas être classés dans une catégrie spécifique mais ils nt tut de même leur imprtance! Opérateur Dénminatin Effet Syntaxe Résultat. Cncaténatin Jint deux chaînes but à but "Bnjur"."Au revir" "BnjurAu revir" $ Référencement de variable Permet de définir une variable $MaVariable = 2; -> Prpriété d'un bjet Permet d'accéder aux dnnées membres d'une classe $MnObjet-> Prpriete 7.8. Les prirités Lrsque l'n asscie plusieurs pérateurs, il faut que l'interpréteur PHP sache dans quel rdre les traiter. Vici dnc dans l'rdre décrissant les prirités de tus les pérateurs : Pririté des pérateurs 1 () [] 2 -- ++! ~ - 3 * / % 4 + - 5 < <= >= > 6 ==!= 7 & 8 ^ 9 10 && 11 12? : 13 = += -= *= /= %= <<= >>= >>>= &= ^= = 14 AND 15 XOR Tutrial PHP - MySQL 2003 16

8. Les structures cnditinnelles 8.1. Qu'est-ce qu'une structure cnditinnelle? On appelle les structures cnditinnelles, les instructins qui permettent de tester si une cnditin est vraie u nn, c'est-à-dire si la valeur de sn expressin vaut 0 u 1 (le PHP asscie le mt clé true à 1 et false à 0). Ces structures cnditinnelles peuvent être assciées à des structures qui se répètent suivant la réalisatin de la cnditin. On appelle ces structures des structures de bucle. 8.2. La ntin de blc Une expressin suivie d'un pint-virgule est appelée instructin. Par exemple a++; est une instructin. Lrsque l'n veut regruper plusieurs instructins, n peut créer ce que l'n appelle un blc, c'est-àdire un ensemble d'instructins (suivies respectivement par des pints-virgules) et cmprises entre les acclades { et. Les instructins if, while et fr peuvent par exemple être suivies d'un blc d'instructins à exécuter. 8.3 L'instructin if L'instructin if est la structure de test la plus basique. On la retruve dans tus les langages de prgrammatin. Elle permet d'exécuter une série d'instructin si une cnditin est réalisée. La syntaxe de cette expressin est la suivante : if (cnditin réalisée) { liste d'instructins Remarques : la cnditin dit être mise entre des parenthèses. il est pssible de définir plusieurs cnditins à remplir avec les pérateurs ET et OU (&& et ) Ainsi par exemple: if ((cnditin1)&&(cnditin2)) teste si les deux cnditins snt vraies. if ((cnditin1) (cnditin2)) exécutera les instructins si l'une u l'autre des deux cnditins est vraie. s'il n'y a qu'une instructin, les acclades ne snt pas indispensables. 8.4. L'instructin if... else L'instructin if dans sa frme basique ne permet de tester que la réalisatin d'une cnditin. Or la plupart du temps n aimerait puvir chisir les instructins à exécuter en cas de nn réalisatin de la cnditin. L'expressin if... else permet d'exécuter une autre série d'instructin en cas de nn-réalisatin de la cnditin. La syntaxe de cette expressin est la suivante : Tutrial PHP - MySQL 2003 17

if (cnditin réalisée) { liste d'instructins else { autre série d'instructins (en cas de nn-réalisatin). Exemple avec a=8 et b=3 : $a = 8; $b = 3; if ($a < $b) { ech "a est plus petit que b"; else { ech "a n'est pas plus petit que b"; 8.5. L'instructin if... elseif... else Il est parfis nécessaire de tester plusieurs cnditins de façn exclusive, c'est-à-dire que sur tutes les cnditins une seule sera réalisée... L'expressin if... elseif... else permet d'enchaîner une série d'instructins et évite d'avir à imbriquer des instructins if. La syntaxe de cette expressin est la suivante: if (cnditin réalisée) { liste d'instructins elseif (autre cnditin réalisée) { autre série d'instructins... else (dernière cnditin réalisée) { Tutrial PHP - MySQL 2003 18

série d'instructins 8.6. Une façn plus cncise (pérateur ternaire) Il est pssible de faire un test avec une structure beaucup mins lurde grâce à la structure suivante, appelée pérateur ternaire : (cnditin)? instructin1 si vrai : instructin2 si faux Remarques : la cnditin dit être entre des parenthèses. lrsque la cnditin est vraie, l'instructin1 est exécutée. lrsque la cnditin est fausse, l'instructin2 est exécutée. 8.7. L'instructin switch L'instructin switch permet de faire plusieurs tests de valeurs sur le cntenu d'une même variable. Ce branchement cnditinnel simplifie beaucup le test de plusieurs valeurs d'une variable. Cette pératin aurait été cmpliquée (mais pssible) avec des if imbriqués. Sa syntaxe est la suivante : switch (Variable) { case Valeur1: Liste d'instructins break; case Valeur1: Liste d'instructins break; case Valeurs...: Liste d'instructins break; default: Liste d'instructins break; Les parenthèses qui suivent le mt clé switch indiquent une expressin dnt la valeur est testée successivement par chacun des "case". Lrsque l'expressin testée est égale à une des valeurs suivant un case, la liste d'instructin qui suit celui-ci est exécutée. Le mt clé break indique la srtie de la structure cnditinnelle. Le mt clé default précède la liste d'instructins qui sera exécutée si l'expressin n'est jamais égale à une des valeurs. N'ubliez pas d'insérer des instructins break entre chaque test, ce genre d'ubli est difficile à détecter car aucune erreur n'est signalée... 8.8. Les bucles Les bucles snt des structures qui permettent d'exécuter plusieurs fis la même série d'instructins jusqu'à ce qu'une cnditin ne sit plus réalisée. On appelle aussi ces structures des instructins répétitives u bien des itératins. Tutrial PHP - MySQL 2003 19

La façn la plus cmmune de faire une bucle, est de créer un cmpteur (une variable qui s'incrémente, c'est-à-dire qui augmente de 1 à chaque tur de bucle) et de faire arrêter la bucle lrsque le cmpteur dépasse une certaine valeur. 8.9. La bucle fr L'instructin fr permet d'exécuter plusieurs fis la même série d'instructins. Dans sa syntaxe, il suffit de préciser le nm de la variable qui sert de cmpteur (et éventuellement sa valeur de départ), la cnditin sur la variable pur laquelle la bucle s'arrête (par exemple une cnditin qui teste si la valeur du cmpteur dépasse une limite) et enfin une instructin qui incrémente (u décrémente) le cmpteur. La syntaxe de cette expressin est la suivante : fr (cmpteur; cnditin; mdificatin du cmpteur) { liste d'instructins Par exemple : fr ($i=1; $i<6; $i++) { ech "$i<br>"; Cette bucle affiche 5 fis la valeur de $i, c'est-à-dire 1, 2, 3, 4, 5. Elle cmmence à $i=1, vérifie que $i est bien inférieur à 6, jusqu'à atteindre la valeur $i=6, pur laquelle la cnditin ne sera plus réalisée. Alrs la bucle s'interrmpra et le prgramme cntinuera sn curs. Ntns que le langage PHP autrise la déclaratin de la variable de bucle dans l'instructin fr ellemême! Par exemple : Tutrial PHP - MySQL 2003 20