HTML parsētājs – SimpleHTMLDom


Bieži vien ir nepieciešams caur PHP ievākt saturu no kādas citas web-lapas un tikai retos gadījumos dati ir pieejami ērtajā XML/RSS formātā. Tādēļ nākas parsēt citas web-lapas HTML kodu un klasiskākā pieeja ir regular expressions izmantošana, kas ir salīdzinoši laikietilpīgs process gan pirmajā piegājienā, gan pēc katrām izmaiņām parsējamās web-lapas HTML koda struktūrā. Nesen atteicos no šāda mazohisma un sāku izmantot jau gatavu klasi HTML parsēšanai – SimpleHTMLDom.

SimpleHTMLDom ļauj atlasīt vajadzīgo saturu ar tikai dažām koda rindiņām un izmanto tādus pašus selektorus kā jQuery vai Prototype Javascript framework.

Nepieciešams tikai iegūt HTML kodu no lokāla faila vai attālināti (file_get_html() vai cURL) un atlasīt saturu ar simpledomhtml funkciju find(). Zemāk redzamais piemērs atradīs visus virsrakstus no webdev.gold.lv pirmās lapas un izvadīs tos vienu zem otra:

include_once('simplehtmldom/simple_html_dom.php');
 
$html = file_get_html('http://webdev.gold.lv/');
foreach($html->find('.title span') as $e) {
    print $e->plaintext.'';
}
$html->clear();

Patreiz lielākais trūkums ir lielais atmiņas izmantojums, jo pie HTML koda nolasīšanas tiek izveidots ļoti liels vairākdimensiju masīvs un tādēļ nedrīkst aizmirst par $html->clear(); pēc parsēšanas.

Vairāk piemēru un laba dokumentācija atrodama SimpleHTMLDom mājas lapā.

Information and Links

Join the fray by commenting, tracking what others have to say, or linking to it from your blog.


Other Posts

Write a Comment

Take a moment to comment and tell us what you think. Some basic HTML is allowed for formatting.

Reader Comments

Paldies par interesantu blog

lasit visu emuaru, diezgan labs