SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
1
Introduction au
langage PHP
Licence Professionnelle
Université Lyon 1, Bourg-en-Bresse
Nicolas Zlatoff
2
Plan
z Pourquoi PHP?
z Présentation générale
z Premiers pas
z Environnement
z Bases du langage
z Activités pratiques
3
Un rappel: HTTP & HTML
z HTTP (HyperText Transfert Protocol):
protocole d’accès au web
Client
Serveur
Requête: GET
www.monserveur/document.html
Réponse
<HTML>
<BODY>
<h1>Mon doc</h1>
Ceci est document
Blabla blabla blabla
blabla blabla blabla
Blabla
</BODY>
</HTML>
4
Un rappel: HTTP & HTML
z HTML (HyperText Markup Language):
langage statique de description de pages
web
z Les pages sont déposés sur le serveur…
z …et appelées à la demande
<HTML>
<BODY>
<h1>Un titre</h1>
<p>Blabla bla Blabla blaBlabla blaBlabla
blaBlabla blaBlabla blaBlabla blaBlabla
blaBlabla bla
<h2>Un deuxième titre</h2>
<p>Blabla bla Blabla blaBlabla blaBlabla
blaBlabla blaBlabla blaBlabla blaBlabla
blaBlabla bla blaBlabla blaBlabla
</BODY>
</HTML>
5
Oui mais…
z Site de vente en ligne
z Un utilisateur sélectionne un produit
z Le met dans un caddie
z Et souhaite afficher le contenu du caddie
z … le résultat est dynamique (« variable »)
z … il faut donc être capable de construire des
pages à la volée
6
Retour sur HTTP
z Construction à la volée d’une page HTML
Client
Serveur
Requête: GET
www.monserveur/mon_caddie.php
Réponse
<HTML>
<BODY>
<h1>Mon Caddie</h1>
Objet 1<br>
Objet 2<br>
Objet 3<br>
</BODY>
</HTML>
<HTML>
<BODY>
<h1>Mon Caddie</h1>
<?php calcul_caddie ?>
</BODY>
</HTML>
mon_caddie.php
7
Plan
z Pourquoi PHP?
z Présentation générale
z Premiers pas
z Environnement
z Bases du langage
z Activités pratiques
8
PHP: caractéristiques
z « Personnal Home Pages » puis « PHP Hypertext
Preprocessor »
z Langage de scripts proche du C, Perl, Java (mais
plus simple!)
z Qui s’intègre dans une page HTML
z Traité par le serveur
z spécifiquement dédié à la création dynamique de pages
HTML
z Créé en 1994 par Rasmus Lerdof
z Aujourd’hui: PHP version 4
z Licence GPL
z Développé en C
9
PHP: atouts majeurs
z Rapidité, facilité de prise en main et de
développement
z …car directement intégré dans les pages HTML
z Gestion d’outils avancés: sessions, cookies
z S’interface avec tous les SGBD
z Transparent vis-à-vis des OS et serveurs
z Windows, Unix, Linux, MacOS
z Apache, Microsoft IIS
z Programmation procédurale ou objet
z Grande communauté de développeurs
10
Plan
z Pourquoi PHP?
z Présentation générale
z Premiers pas
z Environnement
z Bases du langage
z Activités pratiques
11
Environnement
z Un OS
z Un serveur avec un interpréteur PHP
z Apache: www.apache.org
z Configurable avec conf/httpd.conf
z Voir aussi php.ini pour l’interpréteur PHP
z Un éditeur de texte
z Éventuellement une base de donnée
z Voir EasyPHP sur www.easyphp.org
12
Environnement
z Deux possibilités
z Écrire des pages PHP, uploader sur serveur, et
tester
z Installer en local un serveur avec interpréteur
PHP
z Le plus simple?
13
Environnement
z Ecriture de index.php en texte brut
z Attention à NotePad et autres!
z Sauvegarde de index.php dans
Easyphpwwwmon_repertoire
z Path paramétrable dans httpd.conf
z Ouvrir un navigateur
z Exécuter le script
http://localhost/mon_repertoire/index.php
14
Plan
z Pourquoi PHP?
z Présentation générale
z Premiers pas
z Environnement
z Bases du langage
z Activités pratiques
15
Bases du langage
z Intégrer PHP dans HTML…
z … ou HTML dans PHP, suivant les cas
<html>
<p>voici du texte HTML
avec <?php print “un peu” ?> de
code PHP.<br>
</html>
<?php
print “<html><p>”;
print “voici du texte HTML avec
un peu de code PHP.<br></html>”;
?>
16
Bases du langage
z Fin de ligne avec ;
z Commentaires: // ou /* */
<?php
print “Blablabla”;
?>
<?php
// Commentaires
print “Blabla”;
/* D’autres commentaires sur
plusieurs lignes */
?>
17
Bases du langage: types &
variables
z PHP est un langage faiblement typé
z Variables identifiées avec $, sans déclaration
z Transtypage
<?php
$my_integer = 12;
$my_float = 1.03;
$my_string = "coucou";
$my_boolean = TRUE;
?>
<?php
$my_string = “az“;
$my_integer = 12;
$my_string = $my_integer;
print “value: $my_string”;
?>
18
Bases du langage: tableaux
z Tableaux « classiques »: la clé est un
integer
z Tableaux associatifs: la clé est une string
<?php
$my_array = array(1,45,65);
print “élément no2:$my_array[1]“;
/* affiche ‘élément no2:45’ */
?>
<?php
$my_array = array (‘ain’ => 1,
‘aisne’ => 2,
…);
print $my_array[‘aisne’];
/* affiche ‘2’ */
?>
19
Bases du langage: portée des
variables (1/2)
z Généralement, portée = script
z Les variables sont locales aux fonctions
<?php $my_integer = 12 ?>
<html><body>
<h1>Une page HTML</h1>
<?php print $my_integer ?>
/* affiche 12 */
</body>
</html>
<?php
$a = 1; /* portée globale */
function test() {
print $a; /* portée locale */
}
test();
/* n’affiche rien */
?>
20
Bases du langage: portée des
variables (2/2)
z Définition de variables globales
<?php
$a = 1;
$b = 2;
function somme() {
global $a, $b;
/* les variables $a et $b de la
fonction sont déclarées globales
et font référence à $a et $b ci
dessus */
$b = $a + $b;
}
somme();
/* affiche 3 */
print “$b = $b“;
21
Bases du langage: structures
de contrôle (1/2)
z Structures « classiques »
z if … else ou if … elseif
z for
z while
<?php
/* exemple avec while */
$i = 1;
while ($i <= 10) {
print $i++;
/* La valeur affiché
est $i avant
l'incrémentation
(post-incrémentation) */
}
<?php
/* exemple avec for */
for ($i = 1; $i < 11; $i++)
{
print “$i = $i“;
}
?>
<?php
/* exemple avec if */
if ($a > $b) {
print "a + grand que b";
} elseif ($a == $b) {
print "a égal à b";
} else {
print "a + petit que b";
}
?>
22
Bases du langage: structures
de contrôle (2/2)
z Structures « spécifiques »
z foreach pour le parcours de tableaux
z break, continue à l’intérieur d’une boucle
z include() lit et exécute le fichier en paramètre
<?php
/* exemple avec include */
vars.php
<?php $couleur = 'verte';
$fruit = 'pomme';?>
test.php
<?php
print "Une $fruit $couleur";
/* Une */
include 'vars.php';
print "Une $fruit $couleur";
/* Une pomme verte */
<?php
/* exemple avec foreach */
$a = array ("un" => 1,
"deux" => 2,
"trois" => 3,
"dix-sept" => 17);
foreach($a as $k => $v) {
print "$a[$k] => $v";
}
?>
<?php
/* exemple avec foreach */
$a = array (1,2,3,17);
foreach ($a as $v) {
print "Current value: $v";
print "<br>";
}
?>
23
Et après?
z Documentation officielle
z http://www.php.net/docs.php
z Voir aussi Apache
z http://www.apache.org
24
Plan
z Pourquoi PHP?
z Présentation générale
z Premiers pas
z Environnement
z Bases du langage
z Activités pratiques
http://www710.univ-lyon1.fr/~nzlatoff/enseignements/PHP/TP1.html

Contenu connexe

Similaire à PHP_intro.pdf

Patterns and OOP in PHP
Patterns and OOP in PHPPatterns and OOP in PHP
Patterns and OOP in PHPjulien pauli
 
Dotnet j2 ee
Dotnet j2 eeDotnet j2 ee
Dotnet j2 eechdalel
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinLudovic Piot
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide
 
Apache flink - prise en main rapide
Apache flink - prise en main rapideApache flink - prise en main rapide
Apache flink - prise en main rapideBilal Baltagi
 
Programmation web cours php -- sahmi academy
Programmation web   cours php -- sahmi academyProgrammation web   cours php -- sahmi academy
Programmation web cours php -- sahmi academySoufiane SAHMI
 
PHP 5.3, PHP Next
PHP 5.3, PHP NextPHP 5.3, PHP Next
PHP 5.3, PHP NextSQLI
 
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partieCours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partiekadzaki
 
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdfCours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdfRihabBENLAMINE
 
Formation PHP
Formation PHPFormation PHP
Formation PHPkemenaran
 
Php_Mysql.pdf
Php_Mysql.pdfPhp_Mysql.pdf
Php_Mysql.pdfETTAMRY
 
Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4Damien Seguy
 
cours-gratuit.com--CoursPhp-id1055.ppt
cours-gratuit.com--CoursPhp-id1055.pptcours-gratuit.com--CoursPhp-id1055.ppt
cours-gratuit.com--CoursPhp-id1055.pptGroupeExcelMarrakech
 
hassclic270.ppt
hassclic270.ppthassclic270.ppt
hassclic270.pptadiouf2
 
Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !Engineor
 

Similaire à PHP_intro.pdf (20)

Patterns and OOP in PHP
Patterns and OOP in PHPPatterns and OOP in PHP
Patterns and OOP in PHP
 
Dotnet j2 ee
Dotnet j2 eeDotnet j2 ee
Dotnet j2 ee
 
PHP.pptx
PHP.pptxPHP.pptx
PHP.pptx
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
 
Apache flink - prise en main rapide
Apache flink - prise en main rapideApache flink - prise en main rapide
Apache flink - prise en main rapide
 
La première partie de la présentation PHP
La première partie de la présentation PHPLa première partie de la présentation PHP
La première partie de la présentation PHP
 
Php seance1
Php seance1Php seance1
Php seance1
 
Programmation web cours php -- sahmi academy
Programmation web   cours php -- sahmi academyProgrammation web   cours php -- sahmi academy
Programmation web cours php -- sahmi academy
 
PHP 5.3, PHP Next
PHP 5.3, PHP NextPHP 5.3, PHP Next
PHP 5.3, PHP Next
 
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partieCours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partie
 
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdfCours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
 
Cours php
Cours phpCours php
Cours php
 
Formation PHP
Formation PHPFormation PHP
Formation PHP
 
Php_Mysql.pdf
Php_Mysql.pdfPhp_Mysql.pdf
Php_Mysql.pdf
 
Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4
 
cours-gratuit.com--CoursPhp-id1055.ppt
cours-gratuit.com--CoursPhp-id1055.pptcours-gratuit.com--CoursPhp-id1055.ppt
cours-gratuit.com--CoursPhp-id1055.ppt
 
Nouveautés php 7
Nouveautés php 7Nouveautés php 7
Nouveautés php 7
 
hassclic270.ppt
hassclic270.ppthassclic270.ppt
hassclic270.ppt
 
Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !
 

Plus de RihabBENLAMINE

presentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfpresentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfRihabBENLAMINE
 
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdfTutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdfRihabBENLAMINE
 
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdfCM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdfRihabBENLAMINE
 
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdfRihabBENLAMINE
 
coursphp-chap3-230321082859-121d6678.pptx
coursphp-chap3-230321082859-121d6678.pptxcoursphp-chap3-230321082859-121d6678.pptx
coursphp-chap3-230321082859-121d6678.pptxRihabBENLAMINE
 
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdfVirtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdfRihabBENLAMINE
 
416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdf416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdfRihabBENLAMINE
 
Interace Utilisateur.pdf
Interace Utilisateur.pdfInterace Utilisateur.pdf
Interace Utilisateur.pdfRihabBENLAMINE
 
Bases de données sous Android.pdf
Bases de données sous Android.pdfBases de données sous Android.pdf
Bases de données sous Android.pdfRihabBENLAMINE
 
Environnement Android.pdf
Environnement Android.pdfEnvironnement Android.pdf
Environnement Android.pdfRihabBENLAMINE
 
coursphp-230411142526-784b67e9.pdf
coursphp-230411142526-784b67e9.pdfcoursphp-230411142526-784b67e9.pdf
coursphp-230411142526-784b67e9.pdfRihabBENLAMINE
 
0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdfRihabBENLAMINE
 
introAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfintroAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfRihabBENLAMINE
 
016834638650_suitechap1.pptx
016834638650_suitechap1.pptx016834638650_suitechap1.pptx
016834638650_suitechap1.pptxRihabBENLAMINE
 
Chapitre 04-B - Langages de consultation.pdf
Chapitre 04-B - Langages de consultation.pdfChapitre 04-B - Langages de consultation.pdf
Chapitre 04-B - Langages de consultation.pdfRihabBENLAMINE
 
p01b_portelogique_boole.pdf
p01b_portelogique_boole.pdfp01b_portelogique_boole.pdf
p01b_portelogique_boole.pdfRihabBENLAMINE
 
architecture-des-ordinateurs.pdf
architecture-des-ordinateurs.pdfarchitecture-des-ordinateurs.pdf
architecture-des-ordinateurs.pdfRihabBENLAMINE
 

Plus de RihabBENLAMINE (20)

presentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdfpresentationatelierphpprt2-140314143938-phpapp02.pdf
presentationatelierphpprt2-140314143938-phpapp02.pdf
 
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdfTutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
Tutoriel-PHP-Introduction-à-la-POoooooooooooO.pdf
 
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdfCM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
CM_PHP_PDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.pdf
 
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
10_interfacesjavaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.pdf
 
coursphp-chap3-230321082859-121d6678.pptx
coursphp-chap3-230321082859-121d6678.pptxcoursphp-chap3-230321082859-121d6678.pptx
coursphp-chap3-230321082859-121d6678.pptx
 
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdfVirtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
Virtualisation & Cloud. Cloud Computing. Iset Siliana RSI3..pdf
 
416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdf416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdf
 
Interace Utilisateur.pdf
Interace Utilisateur.pdfInterace Utilisateur.pdf
Interace Utilisateur.pdf
 
Firebase.pdf
Firebase.pdfFirebase.pdf
Firebase.pdf
 
Bases de données sous Android.pdf
Bases de données sous Android.pdfBases de données sous Android.pdf
Bases de données sous Android.pdf
 
Les Activités.pdf
Les Activités.pdfLes Activités.pdf
Les Activités.pdf
 
Environnement Android.pdf
Environnement Android.pdfEnvironnement Android.pdf
Environnement Android.pdf
 
coursphp-230411142526-784b67e9.pdf
coursphp-230411142526-784b67e9.pdfcoursphp-230411142526-784b67e9.pdf
coursphp-230411142526-784b67e9.pdf
 
0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf
 
introAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfintroAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdf
 
016834638650_suitechap1.pptx
016834638650_suitechap1.pptx016834638650_suitechap1.pptx
016834638650_suitechap1.pptx
 
Chapitre 04-B - Langages de consultation.pdf
Chapitre 04-B - Langages de consultation.pdfChapitre 04-B - Langages de consultation.pdf
Chapitre 04-B - Langages de consultation.pdf
 
chapitre-2.pptx.pdf
chapitre-2.pptx.pdfchapitre-2.pptx.pdf
chapitre-2.pptx.pdf
 
p01b_portelogique_boole.pdf
p01b_portelogique_boole.pdfp01b_portelogique_boole.pdf
p01b_portelogique_boole.pdf
 
architecture-des-ordinateurs.pdf
architecture-des-ordinateurs.pdfarchitecture-des-ordinateurs.pdf
architecture-des-ordinateurs.pdf
 

PHP_intro.pdf

  • 1. 1 Introduction au langage PHP Licence Professionnelle Université Lyon 1, Bourg-en-Bresse Nicolas Zlatoff
  • 2. 2 Plan z Pourquoi PHP? z Présentation générale z Premiers pas z Environnement z Bases du langage z Activités pratiques
  • 3. 3 Un rappel: HTTP & HTML z HTTP (HyperText Transfert Protocol): protocole d’accès au web Client Serveur Requête: GET www.monserveur/document.html Réponse <HTML> <BODY> <h1>Mon doc</h1> Ceci est document Blabla blabla blabla blabla blabla blabla Blabla </BODY> </HTML>
  • 4. 4 Un rappel: HTTP & HTML z HTML (HyperText Markup Language): langage statique de description de pages web z Les pages sont déposés sur le serveur… z …et appelées à la demande <HTML> <BODY> <h1>Un titre</h1> <p>Blabla bla Blabla blaBlabla blaBlabla blaBlabla blaBlabla blaBlabla blaBlabla blaBlabla bla <h2>Un deuxième titre</h2> <p>Blabla bla Blabla blaBlabla blaBlabla blaBlabla blaBlabla blaBlabla blaBlabla blaBlabla bla blaBlabla blaBlabla </BODY> </HTML>
  • 5. 5 Oui mais… z Site de vente en ligne z Un utilisateur sélectionne un produit z Le met dans un caddie z Et souhaite afficher le contenu du caddie z … le résultat est dynamique (« variable ») z … il faut donc être capable de construire des pages à la volée
  • 6. 6 Retour sur HTTP z Construction à la volée d’une page HTML Client Serveur Requête: GET www.monserveur/mon_caddie.php Réponse <HTML> <BODY> <h1>Mon Caddie</h1> Objet 1<br> Objet 2<br> Objet 3<br> </BODY> </HTML> <HTML> <BODY> <h1>Mon Caddie</h1> <?php calcul_caddie ?> </BODY> </HTML> mon_caddie.php
  • 7. 7 Plan z Pourquoi PHP? z Présentation générale z Premiers pas z Environnement z Bases du langage z Activités pratiques
  • 8. 8 PHP: caractéristiques z « Personnal Home Pages » puis « PHP Hypertext Preprocessor » z Langage de scripts proche du C, Perl, Java (mais plus simple!) z Qui s’intègre dans une page HTML z Traité par le serveur z spécifiquement dédié à la création dynamique de pages HTML z Créé en 1994 par Rasmus Lerdof z Aujourd’hui: PHP version 4 z Licence GPL z Développé en C
  • 9. 9 PHP: atouts majeurs z Rapidité, facilité de prise en main et de développement z …car directement intégré dans les pages HTML z Gestion d’outils avancés: sessions, cookies z S’interface avec tous les SGBD z Transparent vis-à-vis des OS et serveurs z Windows, Unix, Linux, MacOS z Apache, Microsoft IIS z Programmation procédurale ou objet z Grande communauté de développeurs
  • 10. 10 Plan z Pourquoi PHP? z Présentation générale z Premiers pas z Environnement z Bases du langage z Activités pratiques
  • 11. 11 Environnement z Un OS z Un serveur avec un interpréteur PHP z Apache: www.apache.org z Configurable avec conf/httpd.conf z Voir aussi php.ini pour l’interpréteur PHP z Un éditeur de texte z Éventuellement une base de donnée z Voir EasyPHP sur www.easyphp.org
  • 12. 12 Environnement z Deux possibilités z Écrire des pages PHP, uploader sur serveur, et tester z Installer en local un serveur avec interpréteur PHP z Le plus simple?
  • 13. 13 Environnement z Ecriture de index.php en texte brut z Attention à NotePad et autres! z Sauvegarde de index.php dans Easyphpwwwmon_repertoire z Path paramétrable dans httpd.conf z Ouvrir un navigateur z Exécuter le script http://localhost/mon_repertoire/index.php
  • 14. 14 Plan z Pourquoi PHP? z Présentation générale z Premiers pas z Environnement z Bases du langage z Activités pratiques
  • 15. 15 Bases du langage z Intégrer PHP dans HTML… z … ou HTML dans PHP, suivant les cas <html> <p>voici du texte HTML avec <?php print “un peu” ?> de code PHP.<br> </html> <?php print “<html><p>”; print “voici du texte HTML avec un peu de code PHP.<br></html>”; ?>
  • 16. 16 Bases du langage z Fin de ligne avec ; z Commentaires: // ou /* */ <?php print “Blablabla”; ?> <?php // Commentaires print “Blabla”; /* D’autres commentaires sur plusieurs lignes */ ?>
  • 17. 17 Bases du langage: types & variables z PHP est un langage faiblement typé z Variables identifiées avec $, sans déclaration z Transtypage <?php $my_integer = 12; $my_float = 1.03; $my_string = "coucou"; $my_boolean = TRUE; ?> <?php $my_string = “az“; $my_integer = 12; $my_string = $my_integer; print “value: $my_string”; ?>
  • 18. 18 Bases du langage: tableaux z Tableaux « classiques »: la clé est un integer z Tableaux associatifs: la clé est une string <?php $my_array = array(1,45,65); print “élément no2:$my_array[1]“; /* affiche ‘élément no2:45’ */ ?> <?php $my_array = array (‘ain’ => 1, ‘aisne’ => 2, …); print $my_array[‘aisne’]; /* affiche ‘2’ */ ?>
  • 19. 19 Bases du langage: portée des variables (1/2) z Généralement, portée = script z Les variables sont locales aux fonctions <?php $my_integer = 12 ?> <html><body> <h1>Une page HTML</h1> <?php print $my_integer ?> /* affiche 12 */ </body> </html> <?php $a = 1; /* portée globale */ function test() { print $a; /* portée locale */ } test(); /* n’affiche rien */ ?>
  • 20. 20 Bases du langage: portée des variables (2/2) z Définition de variables globales <?php $a = 1; $b = 2; function somme() { global $a, $b; /* les variables $a et $b de la fonction sont déclarées globales et font référence à $a et $b ci dessus */ $b = $a + $b; } somme(); /* affiche 3 */ print “$b = $b“;
  • 21. 21 Bases du langage: structures de contrôle (1/2) z Structures « classiques » z if … else ou if … elseif z for z while <?php /* exemple avec while */ $i = 1; while ($i <= 10) { print $i++; /* La valeur affiché est $i avant l'incrémentation (post-incrémentation) */ } <?php /* exemple avec for */ for ($i = 1; $i < 11; $i++) { print “$i = $i“; } ?> <?php /* exemple avec if */ if ($a > $b) { print "a + grand que b"; } elseif ($a == $b) { print "a égal à b"; } else { print "a + petit que b"; } ?>
  • 22. 22 Bases du langage: structures de contrôle (2/2) z Structures « spécifiques » z foreach pour le parcours de tableaux z break, continue à l’intérieur d’une boucle z include() lit et exécute le fichier en paramètre <?php /* exemple avec include */ vars.php <?php $couleur = 'verte'; $fruit = 'pomme';?> test.php <?php print "Une $fruit $couleur"; /* Une */ include 'vars.php'; print "Une $fruit $couleur"; /* Une pomme verte */ <?php /* exemple avec foreach */ $a = array ("un" => 1, "deux" => 2, "trois" => 3, "dix-sept" => 17); foreach($a as $k => $v) { print "$a[$k] => $v"; } ?> <?php /* exemple avec foreach */ $a = array (1,2,3,17); foreach ($a as $v) { print "Current value: $v"; print "<br>"; } ?>
  • 23. 23 Et après? z Documentation officielle z http://www.php.net/docs.php z Voir aussi Apache z http://www.apache.org
  • 24. 24 Plan z Pourquoi PHP? z Présentation générale z Premiers pas z Environnement z Bases du langage z Activités pratiques http://www710.univ-lyon1.fr/~nzlatoff/enseignements/PHP/TP1.html