Preg correspond au text dans php entre html tags

Bonjour, je voudrais utiliser preg_match en PHP pour parsingr le "Texte désiré" parmi les éléments suivants à partir d'un document html

<p class="review"> Desired text </p> 

Habituellement, j'utiliserais simple_html_dom pour de telles choses, mais à cette occasion, il ne peut pas être utilisé (l'élément ci-dessus n'apparaît pas dans toutes les labels div divisées, de sorte que je suis forcé d'utiliser cette approche pour suivre exactement quand il n'apparaît pas et puis ajustez mon tableau à partir de simple_html_dom en conséquence).

Quoi qu'il en soit, cela résoudrait mon problème.

Merci beaucoup.

     preg_match("'<p class=\"review\">(.*?)</p>'si", $source, $match); if($match) echo "result=".$match[1]; preg_match ("'<p class = \" review \ "> (. *?) </ p>' si", $ source, $ match); preg_match("'<p class=\"review\">(.*?)</p>'si", $source, $match); if($match) echo "result=".$match[1]; 

    Si vous souhaitez renvoyer plusieurs correspondances, vous devez utiliser preg_match_all (). Vous passez ensuite le deuxième groupe de résultats ($ match [1]) pour get simplement le contenu entre les balises.

     $source = "<p class=\"review\"> Desired text1 </p>". "<p class=\"review\"> Desired text2 </p>". "<p class=\"review\"> Desired text3 </p>"; preg_match_all("'<p class=\"review\">(.*?)</p>'si", $source, $match); foreach($match[1] as $val) { echo $val."<br>"; } Outputs: Desired text1 Desired text2 Desired text3 $ source = "<p class = \" review \ "> Texte souhaité1 </ p>". $source = "<p class=\"review\"> Desired text1 </p>". "<p class=\"review\"> Desired text2 </p>". "<p class=\"review\"> Desired text3 </p>"; preg_match_all("'<p class=\"review\">(.*?)</p>'si", $source, $match); foreach($match[1] as $val) { echo $val."<br>"; } Outputs: Desired text1 Desired text2 Desired text3 "<p class = \" review \ "> Texte souhaité2 </ p>". $source = "<p class=\"review\"> Desired text1 </p>". "<p class=\"review\"> Desired text2 </p>". "<p class=\"review\"> Desired text3 </p>"; preg_match_all("'<p class=\"review\">(.*?)</p>'si", $source, $match); foreach($match[1] as $val) { echo $val."<br>"; } Outputs: Desired text1 Desired text2 Desired text3 "<p class = \" review \ "> Texte souhaité3 </ p>"; $source = "<p class=\"review\"> Desired text1 </p>". "<p class=\"review\"> Desired text2 </p>". "<p class=\"review\"> Desired text3 </p>"; preg_match_all("'<p class=\"review\">(.*?)</p>'si", $source, $match); foreach($match[1] as $val) { echo $val."<br>"; } Outputs: Desired text1 Desired text2 Desired text3 preg_match_all ("'<p class = \" review \ "> (. *?) </ p>' si", $ source, $ match); $source = "<p class=\"review\"> Desired text1 </p>". "<p class=\"review\"> Desired text2 </p>". "<p class=\"review\"> Desired text3 </p>"; preg_match_all("'<p class=\"review\">(.*?)</p>'si", $source, $match); foreach($match[1] as $val) { echo $val."<br>"; } Outputs: Desired text1 Desired text2 Desired text3 foreach ($ match [1] en $ val) $source = "<p class=\"review\"> Desired text1 </p>". "<p class=\"review\"> Desired text2 </p>". "<p class=\"review\"> Desired text3 </p>"; preg_match_all("'<p class=\"review\">(.*?)</p>'si", $source, $match); foreach($match[1] as $val) { echo $val."<br>"; } Outputs: Desired text1 Desired text2 Desired text3 echo $ val. "<br>"; $source = "<p class=\"review\"> Desired text1 </p>". "<p class=\"review\"> Desired text2 </p>". "<p class=\"review\"> Desired text3 </p>"; preg_match_all("'<p class=\"review\">(.*?)</p>'si", $source, $match); foreach($match[1] as $val) { echo $val."<br>"; } Outputs: Desired text1 Desired text2 Desired text3 Texte souhaité1 $source = "<p class=\"review\"> Desired text1 </p>". "<p class=\"review\"> Desired text2 </p>". "<p class=\"review\"> Desired text3 </p>"; preg_match_all("'<p class=\"review\">(.*?)</p>'si", $source, $match); foreach($match[1] as $val) { echo $val."<br>"; } Outputs: Desired text1 Desired text2 Desired text3 Texte souhaité2 $source = "<p class=\"review\"> Desired text1 </p>". "<p class=\"review\"> Desired text2 </p>". "<p class=\"review\"> Desired text3 </p>"; preg_match_all("'<p class=\"review\">(.*?)</p>'si", $source, $match); foreach($match[1] as $val) { echo $val."<br>"; } Outputs: Desired text1 Desired text2 Desired text3 

    Que faire si la string que vous utilisez correspond à plusieurs lignes et est:

     <p class="review"> Desired text1 </p> <p class="review"> Desired text2 </p> <p class="review"> Desired text3 </p> <p class = "review"> Texte souhaité1 </ p> <p class="review"> Desired text1 </p> <p class="review"> Desired text2 </p> <p class="review"> Desired text3 </p> <p class = "review"> Texte souhaité2 </ p> <p class="review"> Desired text1 </p> <p class="review"> Desired text2 </p> <p class="review"> Desired text3 </p> 

    Ce model correspondrait une fois, et la correspondance serait tout dans la string.

    Je pense qu'un meilleur model est le suivant:

     "'<p class=\"review\">([^<]*)</p>'si"