دالة PHP xml_set_external_entity_ref_handler()

التعريف والاستخدام

يحدد دالة xml_set_external_entity_ref_handler() الدالة التي يتم استدعاؤها عند العثور على الكيان الخارجي في مستند XML.

إذا تم إنشاء المعالج بنجاح، فإن الدالة ستعود true؛ وإلا ستعود false.

النحو

xml_set_external_entity_ref_handler(parser,handler)
المعامل الوصف
parser مطلوب. يحدد المعالج XML الذي سيتم استخدامه.
handler مطلوب. يحدد الدالة التي يتم استدعاؤها عند العثور على الكيان الخارجي من قبل المعالج.

من handler المعامل المحدد يجب أن يكون له ستة معاملات:

المعامل الوصف
parser مطلوب. يحدد متغير يحتوي على معالج XML المطلوب استخدامه لتحليل XML.
name مطلوب. يحدد متغير يحتوي على اسم الكيان الخارجي.
base

مطلوب. يحدد متغير يحتوي على معرف النظام الأساسي (system_id) الأساسي للمعالجة الخارجية.

النوع الحالي لهذا المعامل عادةً يتم تعيينه كقيمة فارغة.

system_id Required. Specifies the variable that contains the system identifier of the external entity.
public_id Required. Specifies the variable that contains the public identifier of the external entity.

Description

handler The parameter can also be an array containing object references and method names.

Examples

<?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("XML Error: %s at line %d", 
  xml_error_string(xml_get_error_code($parser)),
  xml_get_current_line_number($parser)));
  }
xml_parser_free($parser);
?>