PHP xml_parser_get_option() Function



The PHP XML Parser xml_parser_get_option() function is used to get the value of a specific option that has been specified for an XML parser. It is a part of the XML Parser functions and controls the parser's behavior.

This function takes two inputs: the option you want to validate and the parser resource. Case folding and target encoding are common options. When processing XML data when you need to look into the parser's current setup, it is useful.

Syntax

Below is the syntax of the PHP XML Parser xml_parser_get_option() function −

string|int|bool xml_parser_get_option ( XMLParser $xml_parser, int $option )

Parameters

Here are the parameters of the xml_parser_get_option() function −

  • $xml_parser: (Required) It is a reference to the XML parser.

  • $option: (Required) It is used to specifies option to get. XML_OPTION_PARSE_HUGE, XML_OPTION_CASE_FOLDING, XML_OPTION_TARGET_ENCODING, XML_OPTION_SKIP_TAGSTART, and XML_OPTION_SKIP_WHITE are available.

Return Value

The xml_parser_get_option() function returns the value of specified option on success. And FALSE on failure.

Error/Exception

When an invalid value is given to the option, a ValueError will be thrown. Before PHP 8.0.0, the function returned false and an E_WARNING was created when an invalid value was passed to the option.

PHP Version

First introduced in core PHP 4.0.4, the xml_parser_get_option() function continues to function easily in PHP 5, PHP 7, and PHP 8.

Example 1

Here is the basic example of the PHP XML Parser xml_parser_get_option() function to extract options from an XML parser. It creates an XML parser object, checks the value of the XML_OPTION_CASE_FOLDING option, and then frees it. This parameter defines whether XML element names are converted to uppercase.

<?php
   $p = xml_parser_create();
   
   echo xml_parser_get_option($input, XML_OPTION_CASE_FOLDING);
   xml_parser_free($input);
?>

Output

Here is the outcome of the following code −

1

Example 2

In this PHP code we will try to use the xml_parser_get_option() function and retrieve the XML_OPTION_TARGET_ENCODING option, which defines the character encoding the parser uses.

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

   // Get the value of the target encoding option
   $encoding = xml_parser_get_option($p, XML_OPTION_TARGET_ENCODING);

   // Display the current encoding
   echo "Target Encoding: " . $encoding;

   // Free the parser
   xml_parser_free($p);
?> 

Output

This will generate the below output −

Target Encoding: UTF-8

Example 3

Now the below code shows how to set the case folding option and then confirm the change with the help of the xml_parser_get_option() function.

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

   // Disable case folding
   xml_parser_set_option($p, XML_OPTION_CASE_FOLDING, 0);

   // Validate the case folding option
   $caseFolding = xml_parser_get_option($p, XML_OPTION_CASE_FOLDING);

   // Display the result
   echo "Case Folding: " . ($caseFolding ? "Enabled" : "Disabled");

   // Free the parser
   xml_parser_free($p);
?> 

Output

This will create the below output −

Case Folding: Disabled

Example 4

In the following example, we are demonstrating the use of xml_parser_get_option() function to handle many options by setting and retrieving an XML parser's case folding and target encoding settings.

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

   // Set case folding 
   xml_parser_set_option($p, XML_OPTION_CASE_FOLDING, 0);
   xml_parser_set_option($p, XML_OPTION_TARGET_ENCODING, "UTF-8");

   // Retrieve both options
   $caseFolding = xml_parser_get_option($p, XML_OPTION_CASE_FOLDING);
   $encoding = xml_parser_get_option($p, XML_OPTION_TARGET_ENCODING);

   // Display the results
   echo "Case Folding: " . ($caseFolding ? "Enabled" : "Disabled") . PHP_EOL;
   echo "Target Encoding: " . $encoding;

   // Free the parser
   xml_parser_free($p);
?> 

Output

Following is the output of the above code −

Case Folding: Disabled
Target Encoding: UTF-8
php_function_reference.htm
Advertisements