- PHP - Mở đầu
- PHP - Giới thiệu
- PHP - Cài đặt môi trường
- PHP - Cú pháp
- PHP - Các kiểu biến
- PHP - Hằng (Constant)
- PHP - Toán tử
- PHP - Điều khiển luồng
- PHP - Vòng lặp
- PHP - Chuỗi (String)
- PHP - Các khái niệm Web
- PHP - GET & POST
- PHP - File Inclusion
- PHP - File & I/O
- PHP - Hàm
- PHP - Cookie
- PHP - Session
- PHP - Gửi Email
- PHP - Upload File
- PHP - Chuẩn viết Code
- PHP - Biến được định nghĩa trước
- PHP - Regular Expression
- PHP - Xử lý lỗi
- PHP - Bug & Debug
- PHP - Date & Time
- PHP & MySQL
- PHP & AJAX
- PHP & XML
- PHP - Hướng đối tượng
- PHP cho lập trình viên C
- PHP cho lập trình viên PERL
- PHP - Giới thiệu Form
- PHP - Ví dụ Validation
- PHP - Complete Form
- PHP - Ví dụ về đăng nhập
- PHP - Đăng nhập Facebook
- PHP - Tích hợp Paypal
- PHP - Đăng nhập MySQL
- PHP - AJAX Search
- PHP - AJAX XML Parser
- PHP - AJAX Auto Complete Search
- PHP - Ví dụ AJAX RSS Feed
- PHP - Giới thiệu XML
- PHP - Simple XML
- PHP - Simple XML GET
- PHP - Ví dụ SAX Parser
- PHP - Ví dụ DOM Parser
- PHP - Frame Work
- PHP - Core PHP vs Frame Work
- PHP - Design Pattern
- PHP - Tổng hợp hàm
- Hơn 100 bài tập PHP cơ bản và nâng cao
- Học Java cơ bản và nâng cao
- Học C++ cơ bản và nâng cao
Ví dụ SAX Parser trong PHP
SAX Parser được sử dụng để phân tích cú pháp XML file và tốt hơn để quản lý bộ nhớ so với Simple XML Parser và DOM. Nó không giữ bất kỳ Data trong bộ nhớ, vì thế nó có thể được sử dụng với số lượng file lớn. Ví dụ sau minh họa cách lấy data từ XML bởi sử dụng SAX API.
SAX.xml
XML nên là như sau:
<?xml version="1.0" encoding="utf-8"?> <tutors> <course> <name>Android</name> <country>VietNam</country> <email>vietjackteam@gmail.com</email> <phone>123456789</phone> </course> <course> <name>Java</name> <country>VietNam</country> <email>vietjackteam@gmail.com</email> <phone>123456789</phone> </course> <course> <name>HTML</name> <country>VietNam</country> <email>vietjackteam@gmail.com</email> <phone>123456789</phone> </course> </tutors>
SAX.php
Php file nên là như sau:
<?php //đọc XML bởi sử dụng SAX (viết tắt của Simple API for XML) parser $tutors = array(); $elements = null; // gọi hàm này khi thẻ (tag) được mở function startElements($parser, $name, $attrs) { global $tutors, $elements; if(!empty($name)) { if ($name == 'COURSE') { // tạo một mảng để lưu giữ thông tin $tutors []= array(); } $elements = $name; } } // gọi hàm này khi thẻ (tag) được đóng function endElements($parser, $name) { global $elements; if(!empty($name)) { $elements = null; } } // gọi trên phần text giữa thẻ đóng và thẻ mở function characterData($parser, $data) { global $tutors, $elements; if(!empty($data)) { if ($elements == 'NAME' || $elements == 'COUNTRY' || $elements == 'EMAIL' || $elements == 'PHONE') { $tutors[count($tutors)-1][$elements] = trim($data); } } } // Tạo một XML parser mới và trả về một resource handle // tham chiếu tới để được sử dụng bởi các hàm XML khác. $parser = xml_parser_create(); xml_set_element_handler($parser, "startElements", "endElements"); xml_set_character_data_handler($parser, "characterData"); // mở xml file if (!($handle = fopen('sax.xml', "r"))) { die("Không thể mở XML input"); } while($data = fread($handle, 4096)) // đọc xml file { xml_parse($parser, $data); // bắt đầu parse tài liệu XML } xml_parser_free($parser); // Xóa parser $i=1; foreach($tutors as $course) { echo "ID - ".$i.'<br/>'; echo "Tên khóa học - ".$course['NAME'].'<br/>'; echo "Quốc gia - ".$course['COUNTRY'].'<br/>'; echo "Email - ".$course['EMAIL'].'<br/>'; echo "Phone - ".$course['PHONE'].'<hr/>'; $i++; } ?>
Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:
Các bài học PHP phổ biến khác tại AZCode: