Obtenir des données uniquement à partir de la table html utilisé en php preg_match_all
J'ai un tableau html comme ceci :
<table ... >
<tbody ... >
<tr ... >
<td ...>
string...
</td>
<td ...>
string...
</td>
<td ...>
string...
</td>
<td ...>
string...
</td>
<td ...>
string...
</td>
</tr>
<tr ... >
<td ...>
string...
</td>
<td ...>
string...
</td>
<td ...>
string...
</td>
<td ...>
</td>
<td ...>
string...
</td>
</tr>
..............
</tbody>
</table>
C'est une table de données et j'ai besoin d'obtenir toutes les données de cette.
La table aura un grand nombre de lignes (<tr></tr>
) . chaque ligne aura une des colonnes fixes (<td></td>
)(actuellement 5 ).
rappelez-vous chaque table,tr,td balise peut-être formaté (où dire "...")
Et j'espère que tout le monde peut m'aider à écrire une regex pour preg_match_all
fonction pour obtenir les données comme ceci :
array(
0 => array(
0=> 'some data0',
1=> 'some data1',
2=> 'some data2',
3=> 'some data3',
4=> 'some data4',
)
1 => array(
0=> 'some data0',
1=> 'some data1',
2=> 'some data2',
3=> 'some data3',
4=> 'some data4',
)
2 => array(
0=> 'some data0',
1=> 'some data1',
2=> 'some data2',
3=> 'some data3',
4=> 'some data4',
)
..........
)
Maintenant l'exemple de votre test, hopfully vous pouvez m'aider!!!
<table border="1" >
<tbody style="" >
<tr style="" >
<td style="color:blue;">
data0
</td>
<td style="font-size:15px;">
data1
</td>
<td style="font-size:15px;">
data2
</td>
<td style="color:blue;">
data3
</td>
<td style="color:blue;">
data4
</td>
</tr>
<tr style="" >
<td style="color:blue;">
data00
</td>
<td style="font-size:15px;">
data11
</td>
<td style="font-size:15px;">
data22
</td>
<td style="color:blue;">
data33
</td>
<td style="color:blue;">
data44
</td>
</tr>
<tr style="color:black" >
<td style="color:blue;">
data000
</td>
<td style="font-size:15px;">
data111
</td>
<td style="font-size:15px;">
data222
</td>
<td style="color:blue;">
data333
</td>
<td style="color:blue;">
data444
</td>
</tr>
</tbody>
</table>
- D'où proviennent les données? Est-il sur la même page, il est chargé à partir d'un fichier, ou d'une source distante?
- double possible de Regex Tables comment faire correspondre?
- (connexe), les Meilleures Méthodes pour analyser HTML
- Tu ne te feras pas d'utiliser des expressions régulières pour analyser le code HTML.
Vous devez vous connecter pour publier un commentaire.
Vous ne voulez absolument PAS à analyser HTML avec la Regex.
Il y a beaucoup trop de variations, d'une part, et plus important encore, la regex n'est pas très bon avec la nature hiérarchique de HTML. Il est préférable d'utiliser un analyseur XML ou mieux encore un HTML analyseur spécifique.
Chaque fois que j'ai besoin de gratter HTML, j'ai tendance à utiliser le Simple HTML DOM Parser de la bibliothèque, qui prend un HTML arbre et l'analyse dans un traversable PHP objet, que vous pouvez interroger quelque chose comme JQuery.
Et la sortie:
PHP a une extension native pour analyser le code HTML et XML avec DOM:
Ajuster à votre convenance. Recherche StackOverflow ou qui ont un look à la Manuel PHP ou passer au travers de certains de mes réponses pour en savoir plus sur son utilisation.