PHP nasıl Regex kullanarak HTML içeriğini ayıklamak

1 Cevap php

Biliyorum, biliyorum ... regex HTML metin ayıklamak için en iyi yol değildir. Ama sayfaları bir sürü makale metin ayıklamak gerekiyor, ben her web sitesi için veritabanında regexes saklayabilirsiniz. Ben XML ayrıştırıcıları birden fazla web sitesi ile çalışmak nasıl emin değilim. Her web sitesi için ayrı bir işlevi gerekiyordu.

Her durumda, ben regexes hakkında çok şey bilmiyorum, yani ayı ile beni.

Ben buna benzer bir formatta bir HTML sayfası var

<html>
<head>...</head>
<body>
    <div class=nav>...</div><p id="someshit" />
    <div class=body>....</div>
    <div class=footer>...</div>
</body>

Ben sınıf vücut kabın içeriğini ayıklamak gerekir.

Ben bu çalıştı.

$pattern = "/<div class=\"body\">\(.*?\)<\/div>/sui"
$text = $htmlPageAsIs;
if (preg_match($pattern, $text, $matches))
    echo "MATCHED!";
else
    echo "Sorry gambooka, but your text is in another castle.";

Ben yanlış ne yapıyorum? Benim metin başka kale içinde biter.

* EDIT: ooohh ... aldırma, ben buldum readability's code

1 Cevap

Eğer tırnak kaçırıyorsun: Sen class="body" belgenizin class=body vardır için eşleşen. Kullan "/<div class=\"?body\"?>(.*?)<\/div>/sui".