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
neveropen.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
<!–
–>











Please Login to comment…