Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
clubinfo:premiere_page_avec_php [2023/07/26 08:49] mrcjl [Améliorations] |
— (Version actuelle) | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ======Première page en PHP====== | ||
| - | |||
| - | =====Présentation===== | ||
| - | |||
| - | ====But==== | ||
| - | Réaliser une 1ere page en PHP destinée à générer automatiquement la liste des ponts à chaque ajout de nouvelles pages. | ||
| - | |||
| - | ====Connaissances de base==== | ||
| - | Revoir le cours sur le [[clubinfo: | ||
| - | |||
| - | ====Activité==== | ||
| - | {{ : | ||
| - | Il va falloir : | ||
| - | * Déterminer les différentes pages (décrivant un pont) placées sur notre site. | ||
| - | * Trouver pour chaque page le pont concerné. | ||
| - | * La liste des ponts et le fichier associé sera placé dans un tableau qui sera trié dans l' | ||
| - | * Afficher la liste triée sur la page | ||
| - | |||
| - | =====Connaissances supplémentaires===== | ||
| - | Il existe de nombreuses bibliothèques PHP contenant des fonctions utiles aux différentes tâches à réaliser. Voir sur [[https:// | ||
| - | |||
| - | ====Le système de fichier==== | ||
| - | Le système de fichier correspond à l' | ||
| - | |||
| - | Il est nécessaire de : | ||
| - | * Pointer sur le dossier courant (ou sont enregistrées nos pages) : **opendir()** | ||
| - | * Lire les fichiers qui s'y trouvent : **readdir()** | ||
| - | * Conserver ceux qui contiennent du HTML sauf index.html : **pathinfos()** | ||
| - | |||
| - | {{: | ||
| - | <code php> | ||
| - | // Définir une variable pointant sur notre site (la position de la page courante est symbolisée par un point) | ||
| - | // Opendir fourni un pointeur sur un dossier et sélectionne son 1er fichier. | ||
| - | $site = opendir(" | ||
| - | // lire tout les fichiers les un après les autres (réponse false si tous les fichiers ont été lus) | ||
| - | // readdir fourni le pointeur sur le fichier courant du dossier et sélectionne suivant sinon " | ||
| - | while (($fichier = readdir($site)) != false) { | ||
| - | // ne conserver que les fichiers d' | ||
| - | // pathinfos fourni dans un tableau des informations sur un fichier dont l' | ||
| - | $info = pathinfo($fichier); | ||
| - | if ($info[" | ||
| - | // ne pas conserver le fichier index.html s'il existe | ||
| - | if ($info[" | ||
| - | ... | ||
| - | } | ||
| - | } | ||
| - | } | ||
| - | </ | ||
| - | ++++ | ||
| - | |||
| - | ====Le contenu d'un fichier HTML==== | ||
| - | le HTML est un langage de balisage issu du XML. Il existe des fonctions prédéfinies pour en récupérer le contenu. | ||
| - | |||
| - | Il faut : | ||
| - | * Ouvrir chaque fichier HTML : **SimpleXMLElement()** | ||
| - | * Récupérer le nom du pont contenu dans la balise <h2> du corps (< | ||
| - | |||
| - | {{: | ||
| - | <code php> | ||
| - | // Ouvre le fichier pour en lire le contenu ($page = contenue de la balise HTML) | ||
| - | $page = new SimpleXMLElement(' | ||
| - | // Récupère le nom du pont dans la balise body->h2 | ||
| - | $pont = $page-> | ||
| - | </ | ||
| - | ++++ | ||
| - | |||
| - | ====Les tableaux==== | ||
| - | Un tableau est une liste de clé-> | ||
| - | |||
| - | Il faut : | ||
| - | * Créer un tableau pour contenir la liste (avant d' | ||
| - | * Ajouter un élément (fichier-> | ||
| - | * Trier la liste lorsque tous les fichiers ont étés lus : **asort()** | ||
| - | |||
| - | {{: | ||
| - | <code php> | ||
| - | // Créer un tableau vide | ||
| - | $liste = array(); | ||
| - | ... | ||
| - | // Ajouter un élément clé-> | ||
| - | $liste[$info[" | ||
| - | ... | ||
| - | // Trier la liste à partir des valeurs (nom_du_pont) | ||
| - | asort($liste); | ||
| - | </ | ||
| - | ++++ | ||
| - | |||
| - | ====Affichage de chaînes de caractères==== | ||
| - | Nous avons vu que 2 chaînes de caractères pouvaient être concaténées grâce à l' | ||
| - | |||
| - | * Indiquer le nombre de pont de la liste : **count()** | ||
| - | * Créer une boucle pour traiter tous les éléments de la liste des ponts : **foreach()** | ||
| - | * Afficher chaque élément de la liste de manière formatée : **printf()** | ||
| - | |||
| - | {{: | ||
| - | <code php> | ||
| - | // Afficher le nombre de pont | ||
| - | echo "La collection possède " . count($liste) . " ponts :\n"; | ||
| - | // Début de liste et parcourir la liste des ponts | ||
| - | echo "< | ||
| - | foreach ($liste as $key => $value) | ||
| - | // créer les balises HTML pour mettre en place chaque élément de la liste de liens utiles | ||
| - | printf("< | ||
| - | // Fin de la liste | ||
| - | echo "</ | ||
| - | </ | ||
| - | ++++ | ||
| - | |||
| - | =====Améliorations===== | ||
| - | <WRAP round download> | ||
| - | * Le fichier {{ : | ||
| - | </ | ||
| - | |||
| - | Cette 1ere page PHP nous permet de ne plus modifier notre page " | ||
| - | |||
| - | Pour aller plus loin avec le PHP, il faut des compétences en base de [[clubinfo: | ||
| - | Au lieu d'un fichier index et d' | ||
| - | |||
| - | Le PHP (ou les autres langages web) ont permis la génération automatisée de page et le développement des sites marchands et autres. | ||