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();
|
||
|
}
|
||
|
}
|