Table des matières

PHP : Lecture de fichier html ou xml

Présentation

But

Générer automatiquement la liste des ponts disponibles sur notre site afin de n'avoir qu'a ajouter les nouvelles pages sans toucher au sommaire.

Activité

Il va falloir :

Connaissances et savoir faire

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.

Parcourir le système de fichier

Il faut donc parcourir le système de fichier de notre site pour traiter tous les fichiers HTML sauf index.html.

Si un fichier est connu, on peut y accéder directement : fopen ($chemin, 'r'); (r = lecture et w = écriture).

Pour parcourir ou chercher les fichier d'un dossier, il est nécessaire de :

Coup de pouce

Lire le contenu d'un fichier HTML

Nous avons trouvé le fichier concernant un pont. Pour connaître le nom nom du pont, il faut lire le contenu de la balise <body><h2><a>.

Le HTML est un langage de balisage issu du XML. Il existe des fonctions spécifiques pour lire le contenu des balises.

Lire un fichier texte :

Lire un fichier texte mais balisé :

La variable $fic obtenue grâce à SimpleXMLElement contient un objet spécial qui pourra être vu dans une leçon sur la programmation objet. Pour lire le contenu d'une balise, il faut partir de la première et utiliser des flèches. La documentation de SimpleXML indique beaucoup d'autres choses possibles.

Coup de pouce

Les tableaux

Un tableau est un objet particulier contenant 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 :

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.

Coup de pouce

Pour finir

Solution complète

Pour aller plus loin

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

Pour aller plus loin avec les sites dynamiques, il faudra des compétences :

La base de donnée nous permettra :

Notre site n'aura besoin que de 3 pages (index, formulaire, affichage) quel que soit le nombre de ponts. Sa maintenance et son évolution en sera grandement facilité.

C'est cet ensemble HTML, CSS, SQL et PHP qui ont permis le développement des sites marchands et des autres sites utilisant la génération automatisée des pages .