Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php xml_parse()中的is_final参数做什么?_Php - Fatal编程技术网

Php xml_parse()中的is_final参数做什么?

Php xml_parse()中的is_final参数做什么?,php,Php,我正在创建一个用于xml解析的类,需要使用PHP中的这个方法 它有3个参数,如下所示: int-xml_-parse(资源$parser,字符串$data[,bool$is_-final=false]) 根据PHP手册is_final,这意味着它是否是此解析中发送的最后一段数据,但这意味着什么?这是否与资源$parser有关?据我所知,这个函数不允许输入数据流,因此我感到困惑 请有人解释一下它的作用是最终的意味着如果要解析$data的最后一行,则必须将此参数设置为true 此外,文件中还有一个注

我正在创建一个用于xml解析的类,需要使用PHP中的这个方法

它有3个参数,如下所示:

int-xml_-parse(资源$parser,字符串$data[,bool$is_-final=false])

根据PHP手册
is_final
,这意味着它是否是此解析中发送的最后一段数据,但这意味着什么?这是否与
资源$parser
有关?据我所知,这个函数不允许输入数据流,因此我感到困惑


请有人解释一下它的作用

是最终的
意味着如果要解析
$data
的最后一行,则必须将此参数设置为true

此外,文件中还有一个注释:

Entity errors are reported at the end of the parse. And will only show if the "end" parameter is TRUE
请参见下面的示例



可以使用新数据多次调用xml_parse()来逐段解析文档,只要设置了is_final参数,并且在解析最后一个数据时为TRUE。
您是否可以用一个示例来详细说明?我仍然不太确定这将如何工作。看看这里的例子,通过读取fileah,您可以输入一个数据流(sorta),这澄清了很多!谢谢
<?php
$parser=xml_parser_create();

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

xml_set_character_data_handler($parser,"char");
$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);
?>