96 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace Safe;
 | |
| 
 | |
| use Safe\Exceptions\XmlException;
 | |
| 
 | |
| /**
 | |
|  * xml_parser_create_ns creates a new XML parser
 | |
|  * with XML namespace support and returns a resource handle referencing
 | |
|  * it to be used by the other XML functions.
 | |
|  *
 | |
|  * @param string $encoding The input encoding is automatically detected, so that the
 | |
|  * encoding parameter specifies only the output
 | |
|  * encoding. In PHP 5.0.0 and 5.0.1, the default output charset is
 | |
|  * ISO-8859-1, while in PHP 5.0.2 and upper is UTF-8. The supported
 | |
|  * encodings are ISO-8859-1, UTF-8 and
 | |
|  * US-ASCII.
 | |
|  * @param string $separator With a namespace aware parser tag parameters passed to the various
 | |
|  * handler functions will consist of namespace and tag name separated by
 | |
|  * the string specified in separator.
 | |
|  * @return resource Returns a resource handle for the new XML parser.
 | |
|  * @throws XmlException
 | |
|  *
 | |
|  */
 | |
| function xml_parser_create_ns(string $encoding = null, string $separator = ":")
 | |
| {
 | |
|     error_clear_last();
 | |
|     if ($separator !== ":") {
 | |
|         $result = \xml_parser_create_ns($encoding, $separator);
 | |
|     } elseif ($encoding !== null) {
 | |
|         $result = \xml_parser_create_ns($encoding);
 | |
|     } else {
 | |
|         $result = \xml_parser_create_ns();
 | |
|     }
 | |
|     if ($result === false) {
 | |
|         throw XmlException::createFromPhpError();
 | |
|     }
 | |
|     return $result;
 | |
| }
 | |
| 
 | |
| 
 | |
| /**
 | |
|  * xml_parser_create creates a new XML parser
 | |
|  * and returns a resource handle referencing it to be used by the
 | |
|  * other XML functions.
 | |
|  *
 | |
|  * @param string $encoding The optional encoding specifies the character
 | |
|  * encoding for the input/output in PHP 4. Starting from PHP 5, the input
 | |
|  * encoding is automatically detected, so that the
 | |
|  * encoding parameter specifies only the output
 | |
|  * encoding. In PHP 4, the default output encoding is the same as the
 | |
|  * input charset. If empty string is passed, the parser attempts to identify
 | |
|  * which encoding the document is encoded in by looking at the heading 3 or
 | |
|  * 4 bytes. In PHP 5.0.0 and 5.0.1, the default output charset is
 | |
|  * ISO-8859-1, while in PHP 5.0.2 and upper is UTF-8. The supported
 | |
|  * encodings are ISO-8859-1, UTF-8 and
 | |
|  * US-ASCII.
 | |
|  * @return resource Returns a resource handle for the new XML parser.
 | |
|  * @throws XmlException
 | |
|  *
 | |
|  */
 | |
| function xml_parser_create(string $encoding = null)
 | |
| {
 | |
|     error_clear_last();
 | |
|     if ($encoding !== null) {
 | |
|         $result = \xml_parser_create($encoding);
 | |
|     } else {
 | |
|         $result = \xml_parser_create();
 | |
|     }
 | |
|     if ($result === false) {
 | |
|         throw XmlException::createFromPhpError();
 | |
|     }
 | |
|     return $result;
 | |
| }
 | |
| 
 | |
| 
 | |
| /**
 | |
|  * This function allows to use parser inside
 | |
|  * object. All callback functions could be set with
 | |
|  * xml_set_element_handler etc and assumed to be
 | |
|  * methods of object.
 | |
|  *
 | |
|  * @param resource $parser A reference to the XML parser to use inside the object.
 | |
|  * @param object $object The object where to use the XML parser.
 | |
|  * @throws XmlException
 | |
|  *
 | |
|  */
 | |
| function xml_set_object($parser, object &$object): void
 | |
| {
 | |
|     error_clear_last();
 | |
|     $result = \xml_set_object($parser, $object);
 | |
|     if ($result === false) {
 | |
|         throw XmlException::createFromPhpError();
 | |
|     }
 | |
| }
 |