PHP Regex tüm HTML etiketlerini maç

2 Cevap php

Ben okuyorum, bazı ayrıntılar için HTML sayfa içeren, ben bir dize her Arıyorum, bu dize bir etiket Withing geliyor, ben sadece sadece bu dize okumak istiyorum.

Örnek:

<a href="http://www.example.com/search?la=en&q=javascript">javascript</a>
<a href="http://www.example.com/search?la=en&q=PHP">PHP</a>

Ben sadece bu içermelidir href etiketinin temelinde etiketleri METIN her geçtiği okumak istiyorum (http://www.example.com/search?la=en&q=).

Herhangi bir fikir?

2 Cevap

SimpleHtmlDom örneği (güzel değil?):

// Create DOM from URL or file
$html = file_get_html('http://www.google.com/');

// Find all links 
foreach($html->find('a') as $element) {
       echo $element->href . '<br>';
       echo $element->text; //this is what you want
}

Okuduğunuz HTML sayfası çok düzenli ise (örneğin, makine tarafından üretilen öngörülebilir alışkanlıklarına göre), böyle bir şey çalışmak:

preg_match('|<a\s+href="http://www.example.com/search\?la=en&q=(\w+)"\s*>\1</a>|', $page)

Bundan daha karmaşık daha alırsa Ancak, düzenli ifadeler muhtemelen iş için yeterli olmayacak - Eğer bağlantıları ayıklamak ve metin bulmak için bunları tek-tek kontrol etmek için tam bir HTML çözümleyici kullanarak daha iyi olurdu istiyorum.