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);
?>