Probleme avec une requete regex

Petit nouveau ! | 5 Messages

31 déc. 2009, 18:30

Bonjour a tous, je souhaite extraire une balise ( <div class="dsTop"> pour etre plus precis) extraite entre deux balise avec une requete regex.

Voici mon texte :

$text=<div class="dsBodyLeft"><div class="dsTop"><div class="dsTopLeft">

Ma requete regex est

$regex='#<div class="dsBodyLeft">(.+)<div class="dsTopLeft">#si

Puis ensuite je fait :

preg_match_all($regex, $texte, $bloc_jour);
print_r($bloc_jour);


et voici ce qui est retourne par le script

Array ( [0] => Array ( ) [1] => Array ( ) )


Je vois pas mon erreur et je tourne en rond depuis des heures, si un phpien avertit pouvait me dépanner ca serait gentil

Merci

Eléphant du PHP | 453 Messages

31 déc. 2009, 22:15

Hello,

En lisant ton code, je vois des petits soucis. Pour que tu comprennes mieux d'où cela provient, je t'invite à étudier ce bout de piste.
    $texte='<div id="un_id"><div class="dsBodyLeft"><h1>un titre</h1><p>du texte</p><ul><li>une puce</li><li>une puce</li><ul><div style="color:red"><h2>titre rouge</h2></div></div></div>'; 
    $regex='#<div class="dsBodyLeft">(.+)</div>#i';
    preg_match_all($regex, $texte, $bloc_jour);
    print_r($bloc_jour);
À noter que l'option « S » n'est pas nécessaire puisque le début de ton texte à analyser est statique. ;)
Avant que tu poses des questions et afin de te mettre sur la voie pour résoudre ton problème, le motif n'est pas terminé. À toi de mieux le développer. Sinon, si tu n'arrives pas à résoudre ton problème, n'hésite pas à poser des questions et pense qu'il y a peut être une autre solution à voir (simplexml_load_file() ou simplexml_load_string()).

++
La Tux attitude avec les kiw'z syou plait
Komodo Edit - Inkscape - Dia

Mammouth du PHP | 991 Messages

01 janv. 2010, 19:13

Je te conseil cet excelent site de notre ami Ripat : http://www.lumadis.be/regex/test_regex.php?lang=fr
DevOps, Symfony4, Hoa

ViPHP
ViPHP | 5462 Messages

02 janv. 2010, 19:03

ou encore mieux ca

http://gskinner.com/RegExr/