#include <libxml/tree.h>
#include <libxml/uri.h>
#include <libxml/xmlerror.h>
+#include <libxml/xmlsave.h>
#ifdef LIBXML_SCHEMAS_ENABLED
#include <libxml/relaxng.h>
#endif
PHP_LIBXML_API php_libxml_globals libxml_globals;
#endif
-#if LIBXML_VERSION >= 20600
zend_class_entry *libxmlerror_class_entry;
-#endif
/* {{{ dynamically loadable module stuff */
#ifdef COMPILE_DL_LIBXML
PHP_MINIT_FUNCTION(libxml)
{
-#if LIBXML_VERSION >= 20600
zend_class_entry ce;
-#endif
php_libxml_initialize();
REGISTER_LONG_CONSTANT("LIBXML_VERSION", LIBXML_VERSION, CONST_CS | CONST_PERSISTENT);
REGISTER_STRING_CONSTANT("LIBXML_DOTTED_VERSION", LIBXML_DOTTED_VERSION, CONST_CS | CONST_PERSISTENT);
-#if LIBXML_VERSION >= 20600
/* For use with loading xml */
REGISTER_LONG_CONSTANT("LIBXML_NOENT", XML_PARSE_NOENT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("LIBXML_DTDLOAD", XML_PARSE_DTDLOAD, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("LIBXML_NSCLEAN", XML_PARSE_NSCLEAN, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("LIBXML_NOCDATA", XML_PARSE_NOCDATA, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("LIBXML_NONET", XML_PARSE_NONET, CONST_CS | CONST_PERSISTENT);
+#if LIBXML_VERSION >= 20621
+ REGISTER_LONG_CONSTANT("LIBXML_COMPACT", XML_PARSE_COMPACT, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("LIBXML_NOXMLDECL", XML_SAVE_NO_DECL, CONST_CS | CONST_PERSISTENT);
+#endif
+ REGISTER_LONG_CONSTANT("LIBXML_NOEMPTYTAG", LIBXML_SAVE_NOEMPTYTAG, CONST_CS | CONST_PERSISTENT);
/* Error levels */
REGISTER_LONG_CONSTANT("LIBXML_ERR_NONE", XML_ERR_NONE, CONST_CS | CONST_PERSISTENT);
INIT_CLASS_ENTRY(ce, "LibXMLError", NULL);
libxmlerror_class_entry = zend_register_internal_class(&ce TSRMLS_CC);
-#endif
return SUCCESS;
}
Disable libxml errors and allow user to fetch error information as needed */
PHP_FUNCTION(libxml_use_internal_errors)
{
-#if LIBXML_VERSION >= 20600
xmlStructuredErrorFunc current_handler;
int use_errors=0, retval;
}
}
RETURN_BOOL(retval);
-#else
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Libxml 2.6 or higher is required");
-#endif
}
/* {{{ proto object libxml_get_last_error()
Retrieve last error from libxml */
PHP_FUNCTION(libxml_get_last_error)
{
-#if LIBXML_VERSION >= 20600
xmlErrorPtr error;
error = xmlGetLastError();
} else {
RETURN_FALSE;
}
-#else
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Libxml 2.6 or higher is required");
-#endif
}
/* }}} */
Retrieve array of errors */
PHP_FUNCTION(libxml_get_errors)
{
-#if LIBXML_VERSION >= 20600
xmlErrorPtr error;
error = zend_llist_get_next(LIBXML(error_list));
}
}
-#else
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Libxml 2.6 or higher is required");
-#endif
}
/* }}} */
Clear last error from libxml */
PHP_FUNCTION(libxml_clear_errors)
{
-#if LIBXML_VERSION >= 20600
xmlResetLastError();
if (LIBXML(error_list)) {
zend_llist_clean(LIBXML(error_list));
}
-#else
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Libxml 2.6 or higher is required");
-#endif
}
/* }}} */