Bonjour

J'essaie de parser une page html qui est construite comme ceci

Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
...
<section class="ui grid topbar">
<div class="ui row">
 
        ... des divs etc
 
    </div>
</section>
...

Pour cela j'essaie avec la regex qui selon moi veut dire de sélectionner n'importe quel caractère en n importe quelle quantité entre les deux balises section:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$strResult = implode("", file("test_1.php"));
$pattern = '#<section(.*)<\/section>#';
preg_match_all($pattern, $strResult, $n);
echo '<pre>';
var_dump($n);

le resultat est vide :

array(2) {
[0]=>
array(0) {
}
[1]=>
array(0) {
}
}
J'essaie alors avec DOMDocument() avec ce code qui selon moi devrait extraire des blocs de code délimités par le tag 'section'

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$doc = new DOMDocument();
$doc->loadHTMLFile("test_1.php");
$elements = $doc->getElementsByTagName('section');
echo '<pre>';
var_dump($elements);
mais là aussi le résultat est vide :
bject(DOMNodeList)#2 (1) {
["length"]=>
int(0)
}
Question : Comment dois-je donc procéder pour parser une page HTML et en extraire le code entre les balises section ? L un est elle préférable à l 'autre et quelle sont donc mes erreurs pour obtenir un résultat vide ?
Merci pour votre aide.