PHP/MySQL - Chercher les liens dans un fichier
Auteur : 3L!X | Créé le : 19/06/2006 à 23H00
Dans cet exemple nous allons apprendre comment ouvrir un fichier distant, le scruter, et en extraire tous les liens href qu'il contient, pour les mettre dans un tableau array.
Ce script peut servir par exemple, pour créer un plan de site, très utile quant des pages sont ajoutées régulièrement sur votre site.
Bien sur nous pouvons rechercher bien d'autres choses dans un fichier, comme des images, etc...
Il suffira de modifier le " motif " recherché.
<?php
// Chemin du fichier a scruter
$chaine = implode("", file("dossier/fichier.php"));
// Recherche des liens
$motif = '#<a href="(.+?)"#';
preg_match_all($motif, $chaine, $out, PREG_PATTERN_ORDER);
// Affichage des liens trouvés
foreach($out[1] as $href){
echo $href .'<br />';
}
?>
Explications du script:
- file("dossier/fichier.php")
Nous ouvrons le fichier fichier.php.
- $chaine = implode("", file("dossier/fichier.php"))
Nous rassemblons les éléments du fichier en une chaîne, en les séparants par un espace.
- $motif = '#<a href="(.+?)"#';
Nous délimitons un motif pour nos recherche grâce aux Expressions Régulières, pour ne sélectionner que les liens se trouvant entre <a href=" et ".
- preg_match_all($motif, $chaine, $out, PREG_PATTERN_ORDER);
preg_match_all renvoie dans un tableau ($out) toutes les occurences du motif trouvé ($motif) dans la chaîne sujet ($chaine).
PREG_PATTERN_ORDER met dans l'ordre les résultats trouvés.
La recherche continue jusqu'à la fin de la chaîne.
- foreach($out[1] as $href){echo $href .'<br />';}
Nous parcourons le tableau $out et nous affichons chaque occurrences trouvées.
(0) commentaires - Voir/Editer
|