วิธีทำ Parser

สารบัญ:

วิธีทำ Parser
วิธีทำ Parser

วีดีโอ: วิธีทำ Parser

วีดีโอ: วิธีทำ Parser
วีดีโอ: КАК СДЕЛАТЬ ПАРСЕР | PYTHON 2024, พฤศจิกายน
Anonim

การแยกวิเคราะห์เป็นหนึ่งในเทคนิคที่ใช้กันอย่างแพร่หลายในการเขียนโปรแกรมหน้าเว็บ มันช่วยให้คุณได้รับบริการที่จำเป็นไปยังไซต์โดยใช้คำสั่งจำนวนน้อย ๆ ได้อย่างง่ายดายและง่ายดายเมื่อไม่มีวิธีเขียนสคริปต์ที่จำเป็นด้วยตัวเอง

วิธีทำ parser
วิธีทำ parser

คำแนะนำ

ขั้นตอนที่ 1

วิธีที่ง่ายที่สุดในการแยกวิเคราะห์คือการใช้ฟังก์ชัน PHP file_get_contents () ช่วยให้คุณได้รับเนื้อหาของไฟล์เป็นสตริงข้อความ ฟังก์ชันนี้ใช้อัลกอริธึม "การแมปหน่วยความจำ" ซึ่งช่วยปรับปรุงประสิทธิภาพ

ขั้นตอนที่ 2

ตัวอย่างเช่น ในการเขียนสคริปต์ที่แยกวิเคราะห์ข้อมูลจากเว็บไซต์ของธนาคารกลางแห่งสหพันธรัฐรัสเซีย คุณต้องรับเนื้อหาของหน้า XML โดยใช้ฟังก์ชันที่เหมาะสม โดยก่อนหน้านี้ได้กำหนดวันที่ในรูปแบบที่เหมาะสมสำหรับเว็บไซต์ แล้วใช้นิพจน์ทั่วไปเพื่อแยกออก ในการแสดงสกุลเงินที่เลือก ใช้รหัสที่ได้รับจากเว็บไซต์ของธนาคาร: $ data = date (“d / m / Y”) $ get = file_get_contents (https://www.cbr.ru/scripts/XML_daily.asp ?date_req=$ data); preg_match (“/(.*?)/ is”, $ get, $ string); preg_match (“/(.*?)/ is”, $ string [1], $ str);

ขั้นตอนที่ 3

หากคุณต้องการแยกวิเคราะห์ไฟล์ XML เอง ก็ยังมีฟังก์ชันที่เกี่ยวข้องสำหรับสิ่งนี้ ในการเริ่มต้น parser คุณต้องเริ่มต้นโดยใช้ 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))) {

เสียงสะท้อน "ข้อผิดพลาด";

หยุดพัก; }}

ขั้นตอนที่ 6

ฟังก์ชัน xml_parser_free () ใช้เพื่อเพิ่มทรัพยากรที่ระบบครอบครอง ฟังก์ชันเหล่านี้มีประสิทธิภาพมากที่สุดในการประมวลผลไฟล์ XML

แนะนำ: