Html etiketleri arasında php Preg maç metni

2 Cevap php

Merhaba ben bir html belgeden aşağıdaki dışarı "İstenilen metin" ayrıştırmak için PHP preg_match kullanmak istiyorum

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

Normalde ben böyle şeyler için simple_html_dom kullanmak istiyorum ama bu vesileyle (ben görünmüyor zaman tam olarak takip etmek için bu yaklaşımı kullanmak zorunda kalıyorum bu yüzden yukarıdaki eleman istenilen her div etiketinde görünmüyor ve kullanılamaz sonra) buna göre simple_html_dom benim dizi ayarlayın.

Her neyse, bu benim sorunu çözecek.

Çok teşekkürler.

2 Cevap

Eğer birden fazla maç dönmek istiyorsanız o) (preg_match_all kullanmanız gerekir. Daha sonra ikinci sonuç grubu aracılığıyla döngü ($ maçı [1]) etiketleri arasında sadece içeriği almak için.

$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 

Ne eşleşen konum dize birden fazla satır var ise ve:

<p class="review"> Desired text1 </p>
<p class="review"> Desired text2 </p>
<p class="review"> Desired text3 </p>

Bu desen kez eşleşir ve maç dize her şey olurdu.

Ben daha iyi bir model olduğunu düşünüyorum:

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