Imbrication de code HTML et PHP

Fonctionnement

L’interpréteur

lit un fichier source .php puis génère un flux de sortie avec les règles suivantes :
— toute ligne située à l’extérieur d’un bloc PHP ( entre < ?php et ?>) est recopiée inchangée dans le flux de sortie
— le code PHP est interprété et génère éventuellement des résultats intégrés eux aussi au flux de sortie
— les erreurs éventuelles donnent lieu à des messages d’erreurs qu’on retrouve également dans le flux de sortie (selon la configuration du serveur)
— une page html pure sauvegardée avec l’extension .php sera donc non modifiée et ren-voyée telle quelle . . .

L’interpréteur

lit un fichier source .php puis génère un flux de sortie avec les règles suivantes :
— toute ligne située à l’extérieur d’un bloc PHP ( entre < ?php et ?>) est recopiée inchangée dans le flux de sortie
— le code PHP est interprété et génère éventuellement des résultats intégrés eux aussi au flux de sortie
— les erreurs éventuelles donnent lieu à des messages d’erreurs qu’on retrouve également dans le flux de sortie (selon la configuration du serveur)
— une page html pure sauvegardée avec l’extension .php sera donc non modifiée et ren-voyée telle quelle . . .

Historique

Créateur

Rasmus Lerdorf, un programmeur Groenlandais avec la nationalité canadienne, crée PHP en 1994 pour analyser les connexions sur son site Web. Il réalise les 2 premières moutures du langage (v1 et v2). En 1997, deux étudiants, Andi Gutmans et Zeev Suraski, reprennent le moteur, il en sortira PHP 3.0 puis les outils Zend.
Note : Le langage PHP a subi de profonds remaniements et a bénéficié de beaucoup d’enrichis-sements depuis ces premières versions. La première version objet de PHP (la version 4) a été profondément remaniée lors du passage de PHP4.0 à PHP5.0 et s’inspire désormais largement du modèle de Java.
La version actuelle de PHP est la 7.2, sortie en 2018. La version 7 est sortie en Décembre 2015 et il n’y a jamais eu de version 6 ! PHP 7 (https ://wiki.php.net/rfc/php7timeline)
Avertissement : Le début du développement de la version 6 de PHP date de 2005 et a été abandonnée en raison de difficultés d’intégration du support Unicode. Les autres fonction-nalités envisagées ont depuis été intégrées à PHP 5.3 ou 5.4. Ca n’a pas empêché un certain nombre de livres intitulés PHP 6 de sortir bien que cette version n’existera jamais . . .

La saga PHP 7 :

— Facebook a publié en 2011 HipHop Virtual Machine dit HHVM, une machine virtuelle permettant de pré-compiler le code PHP en bytecode à la manière de Java (JIT Compi-ler).
— En 2014, Facebook sort le langage Hack, s’exécutant grace à HHVM et apportant des fonctionnalités comme le typage fort, des classes paramétrables, une API de collec-tions plus riche et cohérente, des traitements asynchrones et davantage de sécurité avec l’extension XHP.
— Le framework PHP Phalcon (extension PECL de PHP), propose Zephir (Zend Engine PHp Intermediate) (https ://github.com/phalcon/zephir) qui permet la création d’exten-sions rapides en PHP (codées en C) de manière simplifiée (sans écrire du C directe-ment).
— La société Zend a réagi face à HHVM en accélérant le développement de la nouvelle mouture de PHP 7 et en améliorant ses performances avec un mécanisme de compilation AOT (Ahead of Time)
Signifie d’abord Personal Home Pages puis HypertextPreProcessor

Syntaxe et structure

— Proche du C ou du Perl
— Peu structuré au début
— Possibilité de définir des fonctions et des classes
— Très bonnes performances pour PHP 7 (améliorations de l’ordre de 50% de la vitesse d’exécution)

Utilisation

— Grand succès
— Utilisation par de très grands sites
— beaucoup de code libre disponible.
— des dizaines de millions de sites Web l’utilisent à travers le monde. . .
— Comme Le Monde (http ://lemonde.fr/) , Facebook (http ://facebook.fr/) ou Yahoo (http ://yahoo.fr/)

CMS

Les grands CMS Content Management Systems ou Systèmes de Gestion de Contenus utilisent
PHP, comme :
— WordPress
— Joomla
— Drupal
Les CMS de ecommerce aussi :
— Prestashop
— Magento

Frameworks

De grands Frameworks de développement Web aussi sont disponibles en PHP :
— Symfony
— Zend
— Laravel
— Phalcon
— CakePHP
— Yii
— Slim
Note : Plus de 300 millions de sites sont réalisés en PHP à travers le monde !

Installation PHP

Indication : Tout informaticien doit savoir ce que LAMP veut dire . . .

 LAMP :

— Linux
— Apache
— MySQL
— PHP
Par exension, le logiciel équivalent pour Windows, s’est retrouvé nommé :

WAMP :

Pour Windows
Et MAMP pour les Macs. . .

MAMP :

Pour Mac. Pas indispensable car Apache et PHP sont installés sous Mac OS mais un peu plus simple à configurer. Il vous faudra alors installer MySQL ou MariaDB soit dans un paquet soit en utilisant homebrew ou macports
Pour toutes les plate-formes, on peut aussi installer XAMPP (https ://www.apachefriends.org/fr/index.html)
Revenons à l’OS de référence à présent.

Sous Linux :

— Installer Apache2
— Installer PHP7
— Télécharger éventuellement la documentation (paquet php-doc)
— Vérifier le fichier php.ini
— Installer MySQL (client et serveur)
— Installer PHPMyAdmin
— Installer des paquets complémentaires (dont les noms commencent par php7x-)

Exemples simples

bonjour

<!doctype html>
<html>
<head>
<meta charset= »utf-8″ />
<title> Bonjour depuis PHP </title>
</head>
<body>
<?php echo ‘Bonjour généré dynamiquement en PHP !’; ?>
</body>
</html>

Résultat brut html

<!doctype html>
<html>
<head>
<meta charset= »utf-8″ />
<title> Bonjour depuis PHP </title>
</head>
<body>
Bonjour généré dynamiquement en PHP !</body> </html>

Exécution

bonjour

Infos PHP

<?php phpinfo(); ?>

Exécution

infos php

User Agent

<!doctype html>
<html>
<head>
<title>
Navigateur
</title>
<body>
Les informations sur le Navigateur sont :
<?php
echo $_SERVER[‘HTTP_USER_AGENT’];
?>
</body>
</html>

Exemple de Résultat

Les informations sur le Navigateur sont : Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; fr-fr) AppleWebKit/ ˓→533.18.1
(KHTML, like Gecko) Version/5.0.2 Safari/533.18.5

Exécution

User-Agent
Vous pouvez consulter la documentation de PHP sur :
doc php (http ://php.net/manual/fr/)

Imbrication de code HTML et PHP

On peut par exemple :
— Commencer une page HTML
— puis écrire un peu de PHP
— reprendre en HTML
— etc.

Exemple :

<!doctype html>
<html>
<head>
<title>
Navigateur
</title>
<body>
Les informations sur le Navigateur sont :
<?php
$AGENT=$_SERVER[‘HTTP_USER_AGENT’];
echo $AGENT;
echo(« \n<P> »);
if (stristr($AGENT, »MSIE »)) {
?>
<b>Vous semblez utiliser Internet Explorer !</b>
<?php }
elseif (preg_match(« /Firefox/i »,$AGENT))
{ ?>
<b>Vous semblez utiliser Firefox !</b> <?php }
elseif (preg_match(« /chrome/i »,$AGENT))
{ ?>
<b>Vous semblez utiliser Chrome !</b> <?php }
elseif (preg_match(« /Safari/ »,$AGENT))
{ ?>
<b>Vous semblez utiliser Safari !</b> <?php }
else echo « Navigateur Inconnu ! »; ?> </body>
</html>
ATTENTION : ça peut vite devenir ILLISIBLE

Exécution

user-agent php

Remèdes :

Pour ne pas écrire ce genre de code, quelques solutions courantes :
— Utiliser des fonctions PHP
— Utiliser des Classes et Objets PHP
— Séparer les modèles des Vues
— Séparer les Modèles, les Vues et les Contrôleurs (Modèle MVC)
— Utiliser des systèmes de templates comme Twig

Un formulaire HTML et sa réponse en PHP

On code ici :
— un petit formulaire HTML
— et sa réponse en PHP

Formulaire HTML

<!doctype html>
<html>
<head>
<meta charset= »utf-8″ />
<title>
Formulaire html
</title>
</head>
<body>
<form action= »reponse.php » method= »GET »> Votre nom :<input type= »text » name= »nom »> Votre âge :<input type= »text » name= »age »> <p>
<input type=submit value= »Envoyer »>
</form>
</body>
</html>

Sa réponse

<!doctype html>
<html>
<head>
<meta charset= »utf-8″ />
<title>
Test Formulaire PHP
</title>
</head>
<body>
<h1>Bonjour, <?php echo $_GET[‘nom’] ?></h1>
<h2>Vous semblez avoir <?php echo $_GET[‘age’] ?></h2> <?php
$n = $_GET[‘nom’];
$a = $_GET[‘age’];
?>
Votre nom est stocké dans la variable $n dont le type est <?php echo gettype($n) ?>
(suite sur la page suivante)
(suite de la page précédente)
Votre âge est stocké dans la variable <b>$a</b>
<br/> dont le type est <i><?php echo gettype($a); ?></i> <br/> On peut la transformer en <i>integer</i> en faisant :
<?php settype($a, »integer »); ?>
<br/>
Type de $a :<?php echo gettype($a); ?> </body>
</html>

Exécution

Formulaire

Les variables en PHP

Déclaration simple :

<?php
$variable = « une variable en PHP »;
// Une autre variable : $Variable = 1000;

Existence de variables, la fonction isset() :

<?php
$a = « une variable en PHP »;
if(isset($a)) echo « la variable a existe »; unset($a);
echo « la variable a a été supprimée … »;

Test de variables, la fonction empty() :

<?php
$a = « une variable en PHP »;
if (!empty($a)) echo  » La variable existe et elle n\’est ˓→pas vide ! »;
Avertissement : La fonction empty() répond vrai si la variable n’existe pas et ceci sans faire aucun warning ! En outre, avant PHP 5.5, on ne peut pas l’utiliser sur autre chose que des variables (impossible d’appeller une fonction dans l’argument qu’on lui passe)

1 Ce cours au format epub 
2 Ce cours au format pdf
3 Tables des matières
3.1 Caractéristiques Principales
3.2 Fonctionnement
3.3 Historique
3.4 Installation PHP
3.5 Exemples simples
3.6 Imbrication de code HTML et PHP
3.7 Un formulaire HTML et sa réponse en PHP
3.8 Les variables en PHP
3.9 Les chaînes en PHP
3.10 Le typage en PHP
3.11 Quelques particularités de PHP
3.12 Les tableaux en PHP
3.13 Les tableaux prédéfinis de PHP : Superglobales
3.14 L’inclusion de fichiers externes
3.15 Les Objets en PHP
3.16 Les collections en PHP
3.17 Connexion aux bases de données depuis PHP avec PDO
3.18 Requêtes préparées en PHP
3.19 Compléments sur PDO – Sécurité
3.20 Filtrage en PHP
3.21 Gestion des transactions avec PDO
3.22 Connexion persistante avec PDO
3.23 Validation et contrôle d’entrées avec GUMP
3.24 Http et la conservation d’informations sur les clients
3.25 Manipuler XML avec PHP
3.26 Architecture de type MVC avec PHP
3.27 Templates Twig en PHP
3.28 Le microframework Silex
3.29 Tester une application PHP – TDD
3.30 Mettre en place un Web Service REST
3.31 Exemple de service REST avec PHP
3.32 Tester une API REST avec votre navigateur ou avec curl
3.33 Tester une API
3.34 Composer et Symfony
3.35 Débuts avec Symfony
3.36 Doctrine et Symfony
3.37 Exemple Livres/Auteurs avec Doctrine
3.38 Utilisation de Faker pour saisir des données initiales dans la BD
3.39 API Livres/Auteurs
3.40 Consultation de l’API avec JS : fetch, await, async
3.41 Feuilles de TD Lic Pro Web et Mobile
3.42 Feuilles de TD 2ème Année IUT informatique
3.43 Feuilles de TD Lic Pro Web et Mobile
3.44 Feuilles de TD CVRH Tours
3.45 Alice
3.46 Bob travaille en collaboration avec Alice grâce à git :
3.47 Alice se met à jour :
3.48 Corriger des erreurs Git
3.49 Scénario de travail collaboratif à l’aide de branches
3.50 Bob
3.51 Commandes utiles avec les branches
3.52 Merge vs Rebase
3.53 Utilisation de Merge
3.54 Utilisation de Rebase
3.55 Configuration PHP
4 GIT 
5 Configuration
6 Références 
7 Index et recherche
Index

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *