Open In App

PHP | xml_get_current_byte_index() Function

Last Updated : 15 Nov, 2019
Improve
Improve
Like Article
Like
Save
Share
Report

Pre-requisite: XML Basics

The xml_get_current_byte_index() function is an inbuilt function in PHP which is used to return the byte index of an XML parser.

Syntax:

int xml_get_current_byte_index( resource $parser)

Parameters: This function accepts single parameter $xml_parser which is required. This parameter specifies the XML parser to use.

Return Values: This function returns the current byte index of specified parser on success or False on failure.

Note: This function is available for PHP 4.0.0 and newer version.

Below programs illustrate the xml_get_current_byte_index() function in PHP:

gfg.xml file (Mismatch tags):




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


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


Output:

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

geeks.xml file:




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


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


Output:

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

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



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads