From acca0d32b0c5f9ad28ae2aa2c3e8b0ebdbdae21f Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Sat, 13 Aug 2005 10:16:04 +0000 Subject: [PATCH] Add is_unicode(), is_binary() and is_buffer() --- ext/standard/basic_functions.c | 3 +++ ext/standard/php_type.h | 3 +++ ext/standard/type.c | 36 +++++++++++++++++++++++++++++++++- 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index 966177b710..e758b2d3e3 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -531,6 +531,9 @@ function_entry basic_functions[] = { PHP_FALIAS(is_real, is_float, NULL) PHP_FE(is_numeric, NULL) PHP_FE(is_string, NULL) + PHP_FE(is_unicode, NULL) + PHP_FE(is_binary, NULL) + PHP_FE(is_buffer, NULL) PHP_FE(is_array, NULL) PHP_FE(is_object, NULL) PHP_FE(is_scalar, NULL) diff --git a/ext/standard/php_type.h b/ext/standard/php_type.h index c68a65637b..07da585fc0 100644 --- a/ext/standard/php_type.h +++ b/ext/standard/php_type.h @@ -33,6 +33,9 @@ PHP_FUNCTION(is_long); PHP_FUNCTION(is_float); PHP_FUNCTION(is_numeric); PHP_FUNCTION(is_string); +PHP_FUNCTION(is_unicode); +PHP_FUNCTION(is_binary); +PHP_FUNCTION(is_buffer); PHP_FUNCTION(is_array); PHP_FUNCTION(is_object); PHP_FUNCTION(is_scalar); diff --git a/ext/standard/type.c b/ext/standard/type.c index c0e4d15cf6..70c1b39e6c 100644 --- a/ext/standard/type.c +++ b/ext/standard/type.c @@ -285,13 +285,47 @@ PHP_FUNCTION(is_float) /* }}} */ /* {{{ proto bool is_string(mixed var) - Returns true if variable is a string */ + Returns true if variable is a standard string */ PHP_FUNCTION(is_string) { php_is_type(INTERNAL_FUNCTION_PARAM_PASSTHRU, IS_STRING); } /* }}} */ +/* {{{ proto bool is_unicode(mixed var) + Returns true if variable is a unicode string */ +PHP_FUNCTION(is_unicode) +{ + php_is_type(INTERNAL_FUNCTION_PARAM_PASSTHRU, IS_UNICODE); +} +/* }}} */ + +/* {{{ proto bool is_binary(mixed var) + Returns true if variable is a binary string */ +PHP_FUNCTION(is_binary) +{ + php_is_type(INTERNAL_FUNCTION_PARAM_PASSTHRU, IS_BINARY); +} +/* }}} */ + +/* {{{ proto bool is_buffer(mixed var) + Returns true if variable is a ascii, unicode or binary string */ +PHP_FUNCTION(is_buffer) +{ + pval **arg; + + if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg) == FAILURE) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Only one argument expected"); + RETURN_FALSE; + } + + if (Z_TYPE_PP(arg) == IS_STRING || Z_TYPE_PP(arg) == IS_UNICODE || Z_TYPE_PP(arg) == IS_BINARY) { + RETURN_TRUE; + } + RETURN_FALSE; +} +/* }}} */ + /* {{{ proto bool is_array(mixed var) Returns true if variable is an array */ PHP_FUNCTION(is_array) -- 2.40.0