mirror of
https://github.com/php/php-src.git
synced 2025-08-16 22:18:50 +02:00
implement php_libxml_xmlCheckUTF8
- workaround for pre libxml2-2.6.13 function
This commit is contained in:
parent
9ed4b04f6a
commit
ccb99d0a1e
2 changed files with 27 additions and 0 deletions
|
@ -505,6 +505,32 @@ PHP_FUNCTION(libxml_set_streams_context)
|
||||||
|
|
||||||
|
|
||||||
/* {{{ Common functions shared by extensions */
|
/* {{{ Common functions shared by extensions */
|
||||||
|
int php_libxml_xmlCheckUTF8(const unsigned char *s)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
unsigned char c;
|
||||||
|
|
||||||
|
for (i = 0; (c = s[i++]);) {
|
||||||
|
if ((c & 0x80) == 0) {
|
||||||
|
} else if ((c & 0xe0) == 0xc0) {
|
||||||
|
if ((s[i++] & 0xc0) != 0x80) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
} else if ((c & 0xf0) == 0xe0) {
|
||||||
|
if ((s[i++] & 0xc0) != 0x80 || (s[i++] & 0xc0) != 0x80) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
} else if ((c & 0xf8) == 0xf0) {
|
||||||
|
if ((s[i++] & 0xc0) != 0x80 || (s[i++] & 0xc0) != 0x80 || (s[i++] & 0xc0) != 0x80) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
int php_libxml_register_export(zend_class_entry *ce, php_libxml_export_node export_function)
|
int php_libxml_register_export(zend_class_entry *ce, php_libxml_export_node export_function)
|
||||||
{
|
{
|
||||||
php_libxml_func_handler export_hnd;
|
php_libxml_func_handler export_hnd;
|
||||||
|
|
|
@ -80,6 +80,7 @@ void php_libxml_node_decrement_resource(php_libxml_node_object *object TSRMLS_DC
|
||||||
PHP_LIBXML_API void php_libxml_error_handler(void *ctx, const char *msg, ...);
|
PHP_LIBXML_API void php_libxml_error_handler(void *ctx, const char *msg, ...);
|
||||||
void php_libxml_ctx_warning(void *ctx, const char *msg, ...);
|
void php_libxml_ctx_warning(void *ctx, const char *msg, ...);
|
||||||
void php_libxml_ctx_error(void *ctx, const char *msg, ...);
|
void php_libxml_ctx_error(void *ctx, const char *msg, ...);
|
||||||
|
PHP_LIBXML_API int php_libxml_xmlCheckUTF8(const unsigned char *s);
|
||||||
|
|
||||||
#endif /* HAVE_LIBXML */
|
#endif /* HAVE_LIBXML */
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue