ßê çðîáèòè ïàðñåð
Ïàðñèíã º îäíèì ³ç øèðîêî âèêîðèñòîâóâàíèõ ïðèéîì³â ïðè ïðîãðàìóâàíí³ âåá ñòîð³íîê. ³í ëåãêî ³ ïðîñòî äîçâîëÿº îòðèìàòè íåîáõ³äíèé ñåðâ³ñ íà ñàéò çà äîïîìîãîþ íåâåëèêî¿ ê³ëüêîñò³ êîìàíä, êîëè íåìຠìîæëèâîñò³ ñàìîñò³éíî íàïèñàòè íåîáõ³äíèé ñêðèïò.
1
Íàéïðîñò³øå çä³éñíèòè ïàðñèíã çà äîïîìîãîþ PHP ôóíêö³¿ file_get_contents (). Âîíà äîçâîëÿº îòðèìàòè âì³ñò ôàéëó ó âèãëÿä³ òåêñòîâîãî ðÿäêà. Ôóíêö³ÿ âèêîðèñòîâóº àëãîðèòì «memory mapping», ùî ïîêðàùóº ¿¿ ïðîäóêòèâí³ñòü.
2
Íàïðèêëàä, ùîá íàïèñàòè ñêðèïò, ÿêèé ïàðñèò äàí³ ç ñàéòó ÖÁ ÐÔ, íåîáõ³äíî îòðèìàòè çà äîïîìîãîþ â³äïîâ³äíî¿ ôóíêö³¿ âì³ñò XML-ñòîð³íêè, ïîïåðåäíüî âèçíà÷èâøè äàòó ó â³äïîâ³äíîìó äëÿ ñàéòó ôîðìàò³, ï³ñëÿ ÷îãî çà äîïîìîãîþ ðåãóëÿðíèõ âèðàç³â ðîçáèòè ¿¿. Äëÿ â³äîáðàæåííÿ îáðàíî¿ âàëþòè âèêîðèñòîâóºòüñÿ êîä, îòðèìàíèé ç ñàéòó Áàíêó: $ data = date ( "d / m / Y") - $ get = file_get_contents (https://cbr.ru/scripts/XML_daily.asp?date_req=$data) -preg_match ( "/(.*?)/ is", $ get, $ string) -preg_match ( "/(.*?)/ is", $ string [1], $ str) -
3
ßêùî ïîòð³áíî ïàðñèòè áåçïîñåðåäíüî ñàì ôàéë XML, òî äëÿ öüîãî ³ñíóþòü òàêîæ â³äïîâ³äí³ ôóíêö³¿. Äëÿ ïî÷àòêó ïàðñåðó íåîáõ³äíî éîãî ôîðìàòóâàòè çà äîïîìîãîþ xml_parser_create: $ parser = xml_parser_create () -
4
Ïîò³ì âêàçóºòüñÿ ïåðåë³ê ôóíêö³é, ÿê³ áóäóòü îáðîáëÿòè â³äïîâ³äí³ òåãè ³ òåêñòîâó ³íôîðìàö³þ. Âñòàíîâëþþòüñÿ â³äïîâ³äí³ îáðîáíèêè ïî÷àòêó ³ ê³íöÿ åëåìåíòà XML: xml_set_element_handler ($ parser, "startElement", "endElement") -
5
Ç÷èòóâàòè äàí³ ìîæíà çà äîïîìîãîþ ñòàíäàðòíî¿ ôóíêö³¿ fopen () ³ fgets () â ðàìêàõ â³äïîâ³äíîãî öèêëó. Âì³ñò ôàéë³â â³ääàºòüñÿ ÷åðåç ï³äðÿäíèê â xml_parse ().  îñòàííüîìó ïàðàìåòð³ ïåðåäàºòüñÿ ïðàïîð ç÷èòóâàííÿ îñòàííüîãî ðÿäêà: while ($ content = fgets ($ fparse)) {
if (! xml_parse ($ parser, $ content, feof ($ fparse))) {
echo "Error";
break-}}
if (! xml_parse ($ parser, $ content, feof ($ fparse))) {
echo "Error";
break-}}
6
Äëÿ çâ³ëüíåííÿ çàéìàíèõ ñèñòåìîþ ðåñóðñ³â âèêîðèñòîâóºòüñÿ ôóíêö³ÿ xml_parser_free (). Ö³ ôóíêö³¿ º íàéá³ëüø 䳺âèìè ïðè îáðîáö³ XML ôàéë³â.
Ñòàòò³ çà òåìîþ "ßê çðîáèòè ïàðñåð"
Îö³í³òü, áóäü ëàñêà ñòàòòþ