|
|
|
@ -40,28 +40,27 @@ static int le_ctype; |
|
|
|
/* Every user visible function must have an entry in ctype_functions[]. |
|
|
|
*/ |
|
|
|
function_entry ctype_functions[] = { |
|
|
|
PHP_FE(confirm_ctype_compiled, NULL) /* For testing, remove later. */ |
|
|
|
PHP_FE(isalnum, NULL) |
|
|
|
PHP_FE(isalpha, NULL) |
|
|
|
PHP_FE(iscntrl, NULL) |
|
|
|
PHP_FE(isdigit, NULL) |
|
|
|
PHP_FE(islower, NULL) |
|
|
|
PHP_FE(isgraph, NULL) |
|
|
|
PHP_FE(isprint, NULL) |
|
|
|
PHP_FE(ispunct, NULL) |
|
|
|
PHP_FE(isspace, NULL) |
|
|
|
PHP_FE(isupper, NULL) |
|
|
|
PHP_FE(isxdigit, NULL) |
|
|
|
PHP_FE(ctype_alnum, NULL) |
|
|
|
PHP_FE(ctype_alpha, NULL) |
|
|
|
PHP_FE(ctype_cntrl, NULL) |
|
|
|
PHP_FE(ctype_digit, NULL) |
|
|
|
PHP_FE(ctype_lower, NULL) |
|
|
|
PHP_FE(ctype_graph, NULL) |
|
|
|
PHP_FE(ctype_print, NULL) |
|
|
|
PHP_FE(ctype_punct, NULL) |
|
|
|
PHP_FE(ctype_space, NULL) |
|
|
|
PHP_FE(ctype_upper, NULL) |
|
|
|
PHP_FE(ctype_xdigit, NULL) |
|
|
|
{NULL, NULL, NULL} /* Must be the last line in ctype_functions[] */ |
|
|
|
}; |
|
|
|
|
|
|
|
zend_module_entry ctype_module_entry = { |
|
|
|
"ctype", |
|
|
|
ctype_functions, |
|
|
|
PHP_MINIT(ctype), |
|
|
|
PHP_MSHUTDOWN(ctype), |
|
|
|
PHP_RINIT(ctype), /* Replace with NULL if there's nothing to do at request start */ |
|
|
|
PHP_RSHUTDOWN(ctype), /* Replace with NULL if there's nothing to do at request end */ |
|
|
|
NULL, |
|
|
|
NULL, |
|
|
|
NULL, |
|
|
|
NULL, |
|
|
|
PHP_MINFO(ctype), |
|
|
|
STANDARD_MODULE_PROPERTIES |
|
|
|
}; |
|
|
|
@ -70,45 +69,11 @@ zend_module_entry ctype_module_entry = { |
|
|
|
ZEND_GET_MODULE(ctype) |
|
|
|
#endif |
|
|
|
|
|
|
|
/* Remove comments and fill if you need to have entries in php.ini |
|
|
|
PHP_INI_BEGIN() |
|
|
|
PHP_INI_END() |
|
|
|
*/ |
|
|
|
|
|
|
|
#ifndef PHP_EXPERIMENTAL |
|
|
|
#define PHP_EXPERIMENTAL(x,y) |
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
PHP_MINIT_FUNCTION(ctype) |
|
|
|
{ |
|
|
|
/* Remove comments if you have entries in php.ini |
|
|
|
REGISTER_INI_ENTRIES(); |
|
|
|
*/ |
|
|
|
|
|
|
|
return SUCCESS; |
|
|
|
} |
|
|
|
|
|
|
|
PHP_MSHUTDOWN_FUNCTION(ctype) |
|
|
|
{ |
|
|
|
/* Remove comments if you have entries in php.ini |
|
|
|
UNREGISTER_INI_ENTRIES(); |
|
|
|
*/ |
|
|
|
return SUCCESS; |
|
|
|
} |
|
|
|
|
|
|
|
/* Remove if there's nothing to do at request start */ |
|
|
|
PHP_RINIT_FUNCTION(ctype) |
|
|
|
{ |
|
|
|
return SUCCESS; |
|
|
|
} |
|
|
|
|
|
|
|
/* Remove if there's nothing to do at request end */ |
|
|
|
PHP_RSHUTDOWN_FUNCTION(ctype) |
|
|
|
{ |
|
|
|
return SUCCESS; |
|
|
|
} |
|
|
|
|
|
|
|
PHP_MINFO_FUNCTION(ctype) |
|
|
|
{ |
|
|
|
ELS_FETCH(); |
|
|
|
@ -117,40 +82,8 @@ PHP_MINFO_FUNCTION(ctype) |
|
|
|
php_info_print_table_start(); |
|
|
|
php_info_print_table_row(2, "ctype functions", "enabled (experimental)"); |
|
|
|
php_info_print_table_end(); |
|
|
|
|
|
|
|
/* Remove comments if you have entries in php.ini |
|
|
|
DISPLAY_INI_ENTRIES(); |
|
|
|
*/ |
|
|
|
} |
|
|
|
|
|
|
|
/* Remove the following function when you have succesfully modified config.m4 |
|
|
|
so that your module can be compiled into PHP, it exists only for testing |
|
|
|
purposes. */ |
|
|
|
|
|
|
|
/* Every user-visible function in PHP should document itself in the source */ |
|
|
|
/* {{{ proto string confirm_ctype_compiled(string arg) |
|
|
|
Return a string to confirm that the module is compiled in */ |
|
|
|
PHP_FUNCTION(confirm_ctype_compiled) |
|
|
|
{ |
|
|
|
zval **arg; |
|
|
|
int len; |
|
|
|
char string[256]; |
|
|
|
|
|
|
|
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg) == FAILURE) { |
|
|
|
WRONG_PARAM_COUNT; |
|
|
|
} |
|
|
|
|
|
|
|
convert_to_string_ex(arg); |
|
|
|
|
|
|
|
len = sprintf(string, "Congratulations, you have successfully modified ext/ctype/config.m4, module %s is compiled into PHP", Z_STRVAL_PP(arg)); |
|
|
|
RETURN_STRINGL(string, len, 1); |
|
|
|
} |
|
|
|
/* }}} */ |
|
|
|
/* The previous line is meant for emacs, so it can correctly fold and unfold |
|
|
|
functions in source code. See the corresponding marks just before function |
|
|
|
definition, where the functions purpose is also documented. Please follow |
|
|
|
this convention for the convenience of others editing your code. |
|
|
|
*/ |
|
|
|
|
|
|
|
static int ctype(int (*iswhat)(int),zval **c) |
|
|
|
{ |
|
|
|
@ -177,7 +110,7 @@ static int ctype(int (*iswhat)(int),zval **c) |
|
|
|
|
|
|
|
/* {{{ proto bool isalnum(mixed c) |
|
|
|
Check for alphanumeric character(s) */ |
|
|
|
PHP_FUNCTION(isalnum) |
|
|
|
PHP_FUNCTION(ctype_alnum) |
|
|
|
{ |
|
|
|
PHP_EXPERIMENTAL("4.0.4dev",NULL) |
|
|
|
zval **c; |
|
|
|
@ -195,7 +128,7 @@ PHP_FUNCTION(isalnum) |
|
|
|
|
|
|
|
/* {{{ proto bool isalpha(mixed c) |
|
|
|
Check for alphabetic character(s) */ |
|
|
|
PHP_FUNCTION(isalpha) |
|
|
|
PHP_FUNCTION(ctype_alpha) |
|
|
|
{ |
|
|
|
PHP_EXPERIMENTAL("4.0.4dev",NULL) |
|
|
|
zval **c; |
|
|
|
@ -213,7 +146,7 @@ PHP_FUNCTION(isalpha) |
|
|
|
|
|
|
|
/* {{{ proto bool iscntrl(mixed c) |
|
|
|
Check for control character(s) */ |
|
|
|
PHP_FUNCTION(iscntrl) |
|
|
|
PHP_FUNCTION(ctype_cntrl) |
|
|
|
{ |
|
|
|
PHP_EXPERIMENTAL("4.0.4dev",NULL) |
|
|
|
zval **c; |
|
|
|
@ -231,7 +164,7 @@ PHP_FUNCTION(iscntrl) |
|
|
|
|
|
|
|
/* {{{ proto bool isdigit(mixed c) |
|
|
|
Check for numeric character(s) */ |
|
|
|
PHP_FUNCTION(isdigit) |
|
|
|
PHP_FUNCTION(ctype_digit) |
|
|
|
{ |
|
|
|
PHP_EXPERIMENTAL("4.0.4dev",NULL) |
|
|
|
zval **c; |
|
|
|
@ -249,7 +182,7 @@ PHP_FUNCTION(isdigit) |
|
|
|
|
|
|
|
/* {{{ proto bool islower(mixed c) |
|
|
|
Check for lowercase character(s) */ |
|
|
|
PHP_FUNCTION(islower) |
|
|
|
PHP_FUNCTION(ctype_lower) |
|
|
|
{ |
|
|
|
PHP_EXPERIMENTAL("4.0.4dev",NULL) |
|
|
|
zval **c; |
|
|
|
@ -267,7 +200,7 @@ PHP_FUNCTION(islower) |
|
|
|
|
|
|
|
/* {{{ proto bool isgraph(mixed c) |
|
|
|
Check for any printable character(s) except space */ |
|
|
|
PHP_FUNCTION(isgraph) |
|
|
|
PHP_FUNCTION(ctype_graph) |
|
|
|
{ |
|
|
|
PHP_EXPERIMENTAL("4.0.4dev",NULL) |
|
|
|
zval **c; |
|
|
|
@ -285,7 +218,7 @@ PHP_FUNCTION(isgraph) |
|
|
|
|
|
|
|
/* {{{ proto bool isprint(mixed c) |
|
|
|
Check for printable character(s) */ |
|
|
|
PHP_FUNCTION(isprint) |
|
|
|
PHP_FUNCTION(ctype_print) |
|
|
|
{ |
|
|
|
PHP_EXPERIMENTAL("4.0.4dev",NULL) |
|
|
|
zval **c; |
|
|
|
@ -303,7 +236,7 @@ PHP_FUNCTION(isprint) |
|
|
|
|
|
|
|
/* {{{ proto bool ispunct(mixed c) |
|
|
|
Check for any printable character which is not a space or an alphanumeric character */ |
|
|
|
PHP_FUNCTION(ispunct) |
|
|
|
PHP_FUNCTION(ctype_punct) |
|
|
|
{ |
|
|
|
PHP_EXPERIMENTAL("4.0.4dev",NULL) |
|
|
|
zval **c; |
|
|
|
@ -321,7 +254,7 @@ PHP_FUNCTION(ispunct) |
|
|
|
|
|
|
|
/* {{{ proto bool isspace(mixed c) |
|
|
|
Check for whitespace character(s)*/ |
|
|
|
PHP_FUNCTION(isspace) |
|
|
|
PHP_FUNCTION(ctype_space) |
|
|
|
{ |
|
|
|
PHP_EXPERIMENTAL("4.0.4dev",NULL) |
|
|
|
zval **c; |
|
|
|
@ -339,7 +272,7 @@ PHP_FUNCTION(isspace) |
|
|
|
|
|
|
|
/* {{{ proto bool isupper(mixed c) |
|
|
|
Check for uppercase character(s) */ |
|
|
|
PHP_FUNCTION(isupper) |
|
|
|
PHP_FUNCTION(ctype_upper) |
|
|
|
{ |
|
|
|
PHP_EXPERIMENTAL("4.0.4dev",NULL) |
|
|
|
zval **c; |
|
|
|
@ -357,7 +290,7 @@ PHP_FUNCTION(isupper) |
|
|
|
|
|
|
|
/* {{{ proto bool isxdigit(mixed c) |
|
|
|
Check for character(s) representing a hexadecimal digit */ |
|
|
|
PHP_FUNCTION(isxdigit) |
|
|
|
PHP_FUNCTION(ctype_xdigit) |
|
|
|
{ |
|
|
|
PHP_EXPERIMENTAL("4.0.4dev",NULL) |
|
|
|
zval **c; |
|
|
|
|