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ā.



Paldies par interesantu blog