Outils pour utilisateurs

Outils du site


clubinfo:premiere_page_avec_php

Ceci est une ancienne révision du document !


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 PHP

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'ordre alphabétique
  • 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 Références PHP le détail des différentes fonctions ci-dessous grâce a son moteur de recherche.

Le système de fichier

Le système de fichier correspond à l'arborescence des adresses URL (dossier(s) / fichier). Le dossier courant se représente par un point '.' et le dossier parent par '..'. Il comporte 2 parties : Une table qui se compose : du nom du fichier/dossier, de pointeurs (dossier parent, fichier suivant, espace de donnée utilisé …) et des informations de gestion). Un espace de données qui contient le contenue utile des fichiers.

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()

Coup de pouce

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 <title> du fichier

Coup de pouce

Les tableaux

Un tableau est une liste de clé→valeur. Une fois le tableau créé, je peux ajouter de nouvelle clé→valeur ou en lire le contenue. Les clés (série de nombres débutant à 0 ou série de mots uniques dans la liste) permettent d'accéder aux différentes valeurs. Les tableaux peuvent être “multidimensionnel” (la valeur est elle même un tableau). Ils peuvent aussi être parcourus de manière itérative.

Il faut :

  • Créer un tableau pour contenir la liste (avant d'accéder au système de fichier) : array()
  • Ajouter un élément (fichier→pont) pour chaque fichier HTML valide
  • Trier la liste lorsque tous les fichiers ont étés lus : asort()

Coup de pouce

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'opérateur '.' mais il existe aussi de nombreuses fonctions comme : chercher la position d'une sous chaîne, extraire une sous chaîne, convertir la chaîne (minuscule/majuscule …), remplacer une partie de chaîne, formater une chaîne … Concernant l'affichage d'un résultat, c'est sa mise en forme qui nous importe le plus.

  • 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()

Coup de pouce

Améliorations

Cette 1ere page PHP nous permet de ne plus modifier notre page “index” à chaque ajout de nouveau pont.

Pour aller plus loin avec le PHP, il faut des compétences en base de données SQL et formulaire HTML. La base de donnée nous permettra de stocker toutes les informations des ponts et le formulaire de transmettre les informations de chaque pont à la base de données.
Au lieu d'un fichier index et d'autant de pages que de ponts, notre site pourra fonctionner avec seulement 3 : un fichier index (qui en plus de la liste pourra utiliser un moteur de recherche grâce à la base de donnée), un fichier formulaire (pour ajouter les nouveaux ponts) et un fichier d'affichage (valable pour tous les ponts).

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.

clubinfo/premiere_page_avec_php.1690350374.txt.gz · Dernière modification: 2023/07/26 07:46 de mrcjl