Hàm PHP xml_set_external_entity_ref_handler()
Định nghĩa và cách sử dụng
Hàm xml_set_external_entity_ref_handler() quy định hàm được gọi khi bộ giải mã tìm thấy thực thể bên ngoài trong tài liệu XML.
Nếu bộ xử lý được thành công, hàm này sẽ trả về true; ngược lại trả về false.
Cú pháp
xml_set_external_entity_ref_handler(parser,handler)
Tham số | Mô tả |
---|---|
parser | Bắt buộc. Định nghĩa bộ giải mã XML cần sử dụng. |
handler | Bắt buộc. Định nghĩa hàm được gọi khi bộ giải mã tìm thấy thực thể bên ngoài. |
Bởi handler Hàm do tham số quy định phải có sáu tham số:
Tham số | Mô tả |
---|---|
parser | Bắt buộc. Định nghĩa biến chứa bộ giải mã XML của bộ xử lý. |
name | Bắt buộc. Định nghĩa biến chứa tên thực thể bên ngoài. |
base |
Bắt buộc. Định nghĩa một biến, chứa hệ số nhận diện hệ thống cơ bản (system_id ). Hiện tại tham số này thường được thiết lập thành chuỗi rỗng. |
system_id | Bắt buộc. Quy định biến chứa công thức nhận diện hệ thống của thực thể ngoài. |
public_id | Bắt buộc. Quy định biến chứa công thức nhận diện công ty của thực thể ngoài. |
Mô tả
handler Các tham số cũng có thể là một mảng chứa tham chiếu đối tượng và tên phương thức.
Mẫu
<?php $parser=xml_parser_create(); function char($parser,$data) { echo $data; } function ext_ent_handler($parser,$ent,$base,$sysID,$pubID) { echo "$ent"; echo "$sysID"; echo "$pubID"; } xml_set_character_data_handler($parser,"char"); xml_set_external_entity_ref_handler($parser, "ext_ent_handler"); $fp=fopen("test.xml","r"); while ($data=fread($fp,4096)) { xml_parse($parser,$data,feof($fp)) or die (sprintf("Lỗi XML: %s tại dòng %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } xml_parser_free($parser); ?>