Regex tableau et array

Regex tableau et array - PHP - Programmation

Marsh Posté le 16-11-2010 à 11:02:46    

bonjour à toutes et tous.
je suis bloqué sur un regex pour extraire des données d'un tableau html, et insérer ces donénes dans 3 arrays différents (ou alors un array mutlidimensionnel, ca revient au même)
voici grosso modo le tableau en question :

Code :
  1. <table>
  2. <tr class="Subject">
  3. <td>01000000</td>
  4. <td><span onmouseout="_tipoff()" onmouseover="_tipon(this)"><span class="google-src-text" style="direction: ltr; text-align: left;">Arts, Culture &amp; Entertainment</span> Arts, culture et divertissement</span></td>
  5. <td colspan="4">&nbsp;</td>
  6. </tr>
  7. <tr class="SubjectMatter">
  8. <td colspan="2">&nbsp;</td>
  9. <td>15074000</td>
  10. <td>Rodeo</td>
  11. <td colspan="2">&nbsp;</td>
  12. </tr>
  13. <tr class="SubjectDetail">
  14. <td colspan="4">&nbsp;</td>
  15. <td>15074001</td>
  16. <td><span onmouseout="_tipoff()" onmouseover="_tipon(this)"><span class="google-src-text" style="direction: ltr; text-align: left;">barrel racing</span> Baril de course</span></td>
  17. </tr>
  18. </table>


 
anisi je souhaite remplir trois arrays : subject, subjectMatters et subjectDetail, bien entendu sans recupérer toutes les balises...
c'est pour insérer dans une base de données.... masi cette partie là je m'en débrouille ;-)
merci par avance pour votre aide

Reply

Marsh Posté le 16-11-2010 à 11:02:46   

Reply

Marsh Posté le 16-11-2010 à 11:28:40    

utilise DOMDocument + DOMXpath pour parser du HTML c'est fais pour

Reply

Marsh Posté le 16-11-2010 à 13:11:41    

à trouver mon bonheur, un peu tordu mais voici ma solution pour tous le monde :

Code :
  1. <?php
  2. preg_match_all('%<td[^>]*?>(.*?)</td>%si', $str, $res, PREG_PATTERN_ORDER);
  3. $traitement = $res[1];
  4. echo "nombre de ligne : ".count($traitement)."<br />";
  5. echo 'petit test : '.$traitement[4]."<br />";
  6. $n = count($traitement);
  7. for($i=0; $i<$n; $i++){
  8. if(preg_match( '/([0-9]{2})(0{6}$)/',$traitement[$i])){
  9.  $subject['id'][]=$traitement[$i];
  10.  $i++;
  11.  $subject['name'][]=$traitement[$i];
  12. }
  13. elseif(preg_match( '/([0-9]{5})(0{3}$)/',$traitement[$i])){
  14.  $matters['id'][]=$traitement[$i];
  15.  $i++;
  16.  $matters['name'][]=$traitement[$i];
  17. }
  18. elseif(preg_match('/([0-9]{8})/',$traitement[$i])){
  19.  $details['id'][]=$traitement[$i];
  20.  $i++;
  21.  $details['name'][]=$traitement[$i];
  22. }
  23. }
  24. ?>

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed