Bonjour

j'ai un fichier html qui a en gros la structure

<h2>Titre du tableau</h2>
<table>...</table>
<h2>Titre du tableau</h2>
<table>...</table>
<h2>Titre du tableau</h2>
<table>...</table>

Je cherche a extraire les textes contenus entre les balises h2 et td, et ce dans l'ordre mais là je bloque.

Merci de votre aide

4 réponses


luffysan
Réponse acceptée

Si ta structure est enitèrement en HTML. Alors je te conseille d'utliser la classe PHP DOMDocument http://php.net/manual/fr/book.dom.php

Si tu te sers d' explode ?
Tu te crées un petit parser, tu commences par faire un explode sur les retours à la ligne de ta chaine de caractères, donc :

$tab = explode('\n', $str); // Retourne un tableau contenant les lignes de ta chaine

Pour la suite, ça va un peu dépendre de la structure de ton tableau, si c'est régulier ou non, faut que tu fasses des tests.
Tu peux choisir de soit supprimer les balises dont t'as pas besoin (donc les <table><tr> etc.. qui n'ont pas de données sur la mienne ligne si ton code est bien structuré, donc tu peux les supprimer directement de ton tableau, avec str_replace), soit voir un peu comment sont structurés tes tableaux pour savoir comment les exploiter au mieux ;)

Bonjour Darkouu

C'est un peu ce que j'avais pensé mais ca me semble être une usine a gaz je pensais qu'avec les regex ou un truc du genre c'est possible de faire plus simpleet surtout les tableaux ne sont pas réguliers : un coup 2 colonnes, un coup 3, et surtout il y a des parametres dans les <table> donc le str_replace me semble compromis

Merci de ton aide et joyeux noël :)

Merci c'est ce que je suis en train de mettre en place. en effet ca me semble être le plus simple