Hello à tous,
J'essaie de récupérer le contenu d'une <table> bien précise (celle ayant pour ID "fruits") mais seul le dernier enregistrement de la table en question est obtenu.
Voici un testcase illustrant le souci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
    header('Content-Type: text/plain') ;
 
    $s = '<table><tr><td>Foo</td></tr><tr><td>Bar</td></tr></table>'
       . '<table id="fruits">'
       . '<tr><td>Pomme</td><td>Pommier</td></tr>'
       . '<tr><td>Poire</td><td>Poirier</td></tr>'
       . '<tr><td>Mangue</td><td>Manguier</td></tr>'
       . '</table>'
       . '<table id="pays"><tr><td>France</td><td>Paris</td></tr></table>' ;
 
    $regexp = '`<table id="fruits">(?:<tr><td>(.*)</td><td>(.*)</td></tr>)+</table>`Us' ;
    preg_match_all($regexp, $s, $matches, PREG_SET_ORDER) ;
    print_r($matches) ;
?>
Voici ce que j'obtiens :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Array
(
    [0] => Array
        (
            [0] => <table id="fruits"><tr><td>Pomme</td><td>Pommier</td></tr><tr><td>Poire</td><td>Poirier</td></tr><tr><td>Mangue</td><td>Manguier</td></tr></table>
            [1] => Mangue
            [2] => Manguier
        )
 
)
Alors que j'attendais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Array
(
    [0] => Array
        (
            [0] => ...
            [1] => Pomme
            [2] => Pommier
        )
    [1] => Array
        (
            [0] => ...
            [1] => Poire
            [2] => Poirier
        )
    [2] => Array
        (
            [0] => ...
            [1] => Mangue
            [2] => Manguier
        )
)
Une idée ?
Merci