当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PHP xml_get_current_byte_index()用法及代码示例


前提条件: XML基础

xml_get_current_byte_index()函数是PHP中的内置函数,用于返回XML解析器的字节索引。

用法:


int xml_get_current_byte_index( resource $parser)

参数:该函数接受单个参数$xml_parser。此参数指定要使用的XML解析器。

Return Values:如果成功,则此函数返回指定解析器的当前字节索引;如果失败,则返回False。

注意:此函数可用于PHP 4.0.0和更高版本。

以下示例程序旨在说明PHP中的xml_get_current_byte_index()函数:

gfg.xml文件(不匹配标签):

<?xml version="1.0" encoding="utf-8"?> 
<user> 
    <username> user123 </username> 
    <name> firstname lastname </name> 
    <phone> +91-9876543210 </phone> 
    <detail> I am John Doe. Live in Kolkata, India. </detail> 
</users>

程序1:

<?php 
   
// Invalid XML file 
$xml_file= 'gfg.xml'; 
   
// XML parser initialization 
$xml_parser = xml_parser_create(); 
    
// Opening the file in read mode 
$file_pointer = fopen($xml_file, 'r'); 
    
// Reading data from the file stream 
while ($xml_data = fread($file_pointer, 4096)) { 
     
    // Parsing the data chunk 
    if (!xml_parse($xml_parser, $xml_data, feof($file_pointer))) { 
         
        // Display error  
        die( print "ERROR: " .  
           
            // Error string 
            xml_error_string(xml_get_error_code($xml_parser)) .  
               
            "<br>Error Code: " .  
               
            // Error code 
            xml_get_error_code($xml_parser) .  
               
            "<br>Line: " .  
               
            // Line number where the error occurred     
            xml_get_current_line_number($xml_parser) .  
               
            "<br>Column: " .  
               
            // Column number where the error occurred     
            xml_get_current_column_number($xml_parser) .  
               
            "<br>Byte Index: " .  
               
            // Byte index where the current byte occurred 
            xml_get_current_byte_index($xml_parser) . "<br>"
        ); 
    } 
} 
   
// Free to xml parser 
xml_parser_free($xml_parser); 
   
?>

输出:

ERROR: Mismatched tag
Error Code: 76
Line: 7
Column: 13
Byte Index: 208

geeks.xml文件:

<?xml version="1.0 encoding="utf-8"?> 
<user> 
    <username> user123 </username> 
    <name> firstname lastname </name> 
    <phone> +91-9876543210 </phone> 
    <detail> I am John Doe. Live in Kolkata, India. </detail> 
</user>

程序2:

<?php 
   
// Invalid XML file 
$xml_file= 'gfg.xml'; 
   
// XML parser initialization 
$xml_parser = xml_parser_create(); 
    
// Opening the file in read mode 
$file_pointer = fopen($xml_file, 'r'); 
    
// Reading data from the file stream 
while ($xml_data = fread($file_pointer, 4096)) { 
     
    // Parsing the data chunk 
    if (!xml_parse($xml_parser, $xml_data, feof($file_pointer))) { 
         
        // Display error  
        die( print "ERROR: " .  
           
            // Error string 
            xml_error_string(xml_get_error_code($xml_parser)) .  
               
            "<br>Error Code: " .  
               
            // Error code 
            xml_get_error_code($xml_parser) .  
               
            "<br>Line: " .  
               
            // Line number where the error occurred     
            xml_get_current_line_number($xml_parser) .  
               
            "<br>Column: " .  
               
            // Column number where the error occurred     
            xml_get_current_column_number($xml_parser) .  
               
            "<br>Byte Index: " .  
               
            // Byte index where the current byte occurred 
            xml_get_current_byte_index($xml_parser) . "<br>"
        ); 
    } 
} 
   
// Free to xml parser 
xml_parser_free($xml_parser); 
   
?>

输出:

ERROR: String not closed expecting " or '
Error Code: 34
Line: 1
Column: 36
Byte Index: 37

参考: https://www.php.net/manual/en/function.xml-get-current-byte-index.php



相关用法


注:本文由纯净天空筛选整理自gekcho大神的英文原创作品 PHP | xml_get_current_byte_index() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。