Extraire entre 2 balises avec preg_match_all
Posté : 13 mai 2011, 18:04
Bonjour à tous,
Je ne parviens pas avec preg_match_all à extraire un morceau de code dans une page...
Ce que je cherche, c'est un masque du style
... qui permettrait d'extraire le nom de l'adhérent.
Par exemple, depuis le code-source ci-dessous,
<div class="nom_adherent">
BIBLIOTHEQUE MEDIATHEQUE </div>
on sortirait "BIBLIOTHEQUE MEDIATHEQUE".
Il y a plein d'espaces avant et après le nom à extraire, je crois que c'est surtout ceux-ci qui m'embêtent, et je ne suis pas très à l'aise avec preg_match_all...
Si j'utilise eregi() à la place, le code sélectionne de "<div class="nom_adherent">" à la toute dernière balise </div>. C'est bien trop. De toute façon, je crois bien que cette fonction n'est plus à la page.
Comment peut-on ainsi programmer en php :
" Dans le code source, tu commences au premier <div class="nom_adherent"> rencontré, tu choppes tout jusqu'à la prochaine </div> et stop !
Souhaitant m'exprimer le plus clairement possible, je vous salue bien bas, en espérant que quelqu'un puisse m'éclairer.
Ecumastor.
Je ne parviens pas avec preg_match_all à extraire un morceau de code dans une page...
Ce que je cherche, c'est un masque du style
Code : Tout sélectionner
ob_start ();
$scan = file_get_contents($url);
if(preg_match('#<div class="nom_adherent">(.*)</div>#', $scan, $sortie)){
$resultat = $sortie[1];
$nom_adherent=$resultat;
echo"<h1>Y'en a un : $nom_adherent</h1>";
}
ob_end_flush();
Par exemple, depuis le code-source ci-dessous,
<div class="nom_adherent">
BIBLIOTHEQUE MEDIATHEQUE </div>
on sortirait "BIBLIOTHEQUE MEDIATHEQUE".
Il y a plein d'espaces avant et après le nom à extraire, je crois que c'est surtout ceux-ci qui m'embêtent, et je ne suis pas très à l'aise avec preg_match_all...
Si j'utilise eregi() à la place, le code sélectionne de "<div class="nom_adherent">" à la toute dernière balise </div>. C'est bien trop. De toute façon, je crois bien que cette fonction n'est plus à la page.
Comment peut-on ainsi programmer en php :
" Dans le code source, tu commences au premier <div class="nom_adherent"> rencontré, tu choppes tout jusqu'à la prochaine </div> et stop !
Souhaitant m'exprimer le plus clairement possible, je vous salue bien bas, en espérant que quelqu'un puisse m'éclairer.
Ecumastor.