Php/func xml set external entity ref handler

来自菜鸟教程
跳转至:导航、​搜索

PHP xml_set_external_entity_ref_handler()函数

❮PHP XML分析器参考

创建一个XML解析器,设置字符数据处理程序,设置外部实体引用处理程序,并解析XML文档:

  <?php
// Create an XML parser
$parser=xml_parser_create();


function char($parser,$data) {
echo $data;
}

function ext_ent_handler($parser,$ent,$base,$sysID,$pubID)  
  {

  echo "$ent<br>";

  echo "$sysID<br>";

  echo "$pubID<br>";

  }


// Set the 
  character data handler

  xml_set_character_data_handler($parser,"char");

// Set the 
  external entity reference handler
xml_set_external_entity_ref_handler($parser, "ext_ent_handler");

$fp=fopen("note_entity.xml","r");


while ($data=fread($fp,4096)) {
  // Parse XML data
  
  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);
fclose($fp);

?>



定义和用法

xml_set_external_entity_ref_handler()函数指定当解析器在XML文档中找到外部实体时要调用的函数。

注意: 该处理程序参数也可以是包含对象引用和方法名称的数组。

句法

xml_set_external_entity_ref_handler(parser, handler)

参数值

参数 描述
parser 需要。指定要使用的XML解析器
handler

需要。指定用作事件处理程序的函数。该函数必须接受五个参数:

  • $ parser-包含调用处理程序的XML解析器的变量
  • $ name-包含外部实体名称的变量
  • $ base-解决外部实体的系统标识符(system_id)的基础。当前,这始终是一个空字符串
  • $ system_id-实体声明中指定的系统标识符
  • $ public_id-实体声明中指定的公共标识符

技术细节

返回值: 成功则为真。失败时为假
PHP版本: 4.0+

❮PHP XML分析器参考