1 /* 2 +----------------------------------------------------------------------+ 3 | PHP Version 7 | 4 +----------------------------------------------------------------------+ 5 | Copyright (c) The PHP Group | 6 +----------------------------------------------------------------------+ 7 | This source file is subject to version 3.01 of the PHP license, | 8 | that is bundled with this package in the file LICENSE, and is | 9 | available through the world-wide-web at the following url: | 10 | http://www.php.net/license/3_01.txt | 11 | If you did not receive a copy of the PHP license and are unable to | 12 | obtain it through the world-wide-web, please send a note to | 13 | license@php.net so we can mail you a copy immediately. | 14 +----------------------------------------------------------------------+ 15 | Authors: Rasmus Lerdorf <rasmus@php.net> | 16 | Stig Sæther Bakken <ssb@php.net> | 17 +----------------------------------------------------------------------+ 18 */ 19 20 #ifndef PHP_STRING_H 21 #define PHP_STRING_H 22 23 PHP_FUNCTION(strspn); 24 PHP_FUNCTION(strcspn); 25 PHP_FUNCTION(str_replace); 26 PHP_FUNCTION(str_ireplace); 27 PHP_FUNCTION(rtrim); 28 PHP_FUNCTION(trim); 29 PHP_FUNCTION(ltrim); 30 PHP_FUNCTION(soundex); 31 PHP_FUNCTION(levenshtein); 32 33 PHP_FUNCTION(count_chars); 34 PHP_FUNCTION(wordwrap); 35 PHP_FUNCTION(explode); 36 PHP_FUNCTION(implode); 37 PHP_FUNCTION(strtok); 38 PHP_FUNCTION(strtoupper); 39 PHP_FUNCTION(strtolower); 40 PHP_FUNCTION(basename); 41 PHP_FUNCTION(dirname); 42 PHP_FUNCTION(pathinfo); 43 PHP_FUNCTION(strstr); 44 PHP_FUNCTION(strpos); 45 PHP_FUNCTION(stripos); 46 PHP_FUNCTION(strrpos); 47 PHP_FUNCTION(strripos); 48 PHP_FUNCTION(strrchr); 49 PHP_FUNCTION(substr); 50 PHP_FUNCTION(quotemeta); 51 PHP_FUNCTION(ucfirst); 52 PHP_FUNCTION(lcfirst); 53 PHP_FUNCTION(ucwords); 54 PHP_FUNCTION(strtr); 55 PHP_FUNCTION(strrev); 56 PHP_FUNCTION(hebrev); 57 PHP_FUNCTION(hebrevc); 58 PHP_FUNCTION(user_sprintf); 59 PHP_FUNCTION(user_printf); 60 PHP_FUNCTION(vprintf); 61 PHP_FUNCTION(vsprintf); 62 PHP_FUNCTION(addcslashes); 63 PHP_FUNCTION(addslashes); 64 PHP_FUNCTION(stripcslashes); 65 PHP_FUNCTION(stripslashes); 66 PHP_FUNCTION(chr); 67 PHP_FUNCTION(ord); 68 PHP_FUNCTION(nl2br); 69 PHP_FUNCTION(setlocale); 70 PHP_FUNCTION(localeconv); 71 PHP_FUNCTION(nl_langinfo); 72 PHP_FUNCTION(stristr); 73 PHP_FUNCTION(chunk_split); 74 PHP_FUNCTION(parse_str); 75 PHP_FUNCTION(str_getcsv); 76 PHP_FUNCTION(bin2hex); 77 PHP_FUNCTION(hex2bin); 78 PHP_FUNCTION(similar_text); 79 PHP_FUNCTION(strip_tags); 80 PHP_FUNCTION(str_repeat); 81 PHP_FUNCTION(substr_replace); 82 PHP_FUNCTION(strnatcmp); 83 PHP_FUNCTION(strnatcasecmp); 84 PHP_FUNCTION(substr_count); 85 PHP_FUNCTION(str_pad); 86 PHP_FUNCTION(sscanf); 87 PHP_FUNCTION(str_shuffle); 88 PHP_FUNCTION(str_word_count); 89 PHP_FUNCTION(str_split); 90 PHP_FUNCTION(strpbrk); 91 PHP_FUNCTION(substr_compare); 92 PHP_FUNCTION(utf8_encode); 93 PHP_FUNCTION(utf8_decode); 94 PHP_FUNCTION(strcoll); 95 #if HAVE_STRFMON 96 PHP_FUNCTION(money_format); 97 #endif 98 99 #if defined(ZTS) 100 PHP_MINIT_FUNCTION(localeconv); 101 PHP_MSHUTDOWN_FUNCTION(localeconv); 102 #endif 103 #if HAVE_NL_LANGINFO 104 PHP_MINIT_FUNCTION(nl_langinfo); 105 #endif 106 #if ZEND_INTRIN_SSE4_2_FUNC_PTR 107 PHP_MINIT_FUNCTION(string_intrin); 108 #endif 109 110 #define strnatcmp(a, b) \ 111 strnatcmp_ex(a, strlen(a), b, strlen(b), 0) 112 #define strnatcasecmp(a, b) \ 113 strnatcmp_ex(a, strlen(a), b, strlen(b), 1) 114 PHPAPI int strnatcmp_ex(char const *a, size_t a_len, char const *b, size_t b_len, int fold_case); 115 PHPAPI struct lconv *localeconv_r(struct lconv *out); 116 PHPAPI char *php_strtoupper(char *s, size_t len); 117 PHPAPI char *php_strtolower(char *s, size_t len); 118 PHPAPI zend_string *php_string_toupper(zend_string *s); 119 PHPAPI zend_string *php_string_tolower(zend_string *s); 120 PHPAPI char *php_strtr(char *str, size_t len, const char *str_from, const char *str_to, size_t trlen); 121 PHPAPI zend_string *php_addslashes(zend_string *str); 122 PHPAPI void php_stripslashes(zend_string *str); 123 PHPAPI zend_string *php_addcslashes_str(const char *str, size_t len, char *what, size_t what_len); 124 PHPAPI zend_string *php_addcslashes(zend_string *str, char *what, size_t what_len); 125 PHPAPI void php_stripcslashes(zend_string *str); 126 PHPAPI zend_string *php_basename(const char *s, size_t len, char *suffix, size_t sufflen); 127 PHPAPI size_t php_dirname(char *str, size_t len); 128 PHPAPI char *php_stristr(char *s, char *t, size_t s_len, size_t t_len); 129 PHPAPI zend_string *php_str_to_str(const char *haystack, size_t length, const char *needle, 130 size_t needle_len, const char *str, size_t str_len); 131 PHPAPI zend_string *php_trim(zend_string *str, char *what, size_t what_len, int mode); 132 PHPAPI size_t php_strip_tags(char *rbuf, size_t len, uint8_t *state, const char *allow, size_t allow_len); 133 PHPAPI size_t php_strip_tags_ex(char *rbuf, size_t len, uint8_t *stateptr, const char *allow, size_t allow_len, zend_bool allow_tag_spaces); 134 PHPAPI void php_implode(const zend_string *delim, zval *arr, zval *return_value); 135 PHPAPI void php_explode(const zend_string *delim, zend_string *str, zval *return_value, zend_long limit); 136 137 PHPAPI size_t php_strspn(char *s1, char *s2, char *s1_end, char *s2_end); 138 PHPAPI size_t php_strcspn(char *s1, char *s2, char *s1_end, char *s2_end); 139 140 PHPAPI int string_natural_compare_function_ex(zval *result, zval *op1, zval *op2, zend_bool case_insensitive); 141 PHPAPI int string_natural_compare_function(zval *result, zval *op1, zval *op2); 142 PHPAPI int string_natural_case_compare_function(zval *result, zval *op1, zval *op2); 143 144 #ifndef HAVE_MBLEN 145 # define php_mblen(ptr, len) 1 146 # define php_mb_reset() 147 #elif defined(_REENTRANT) && defined(HAVE_MBRLEN) && defined(HAVE_MBSTATE_T) 148 # ifdef PHP_WIN32 149 # include <wchar.h> 150 # endif 151 # define php_mblen(ptr, len) ((int) mbrlen(ptr, len, &BG(mblen_state))) 152 # define php_mb_reset() memset(&BG(mblen_state), 0, sizeof(BG(mblen_state))) 153 #else 154 # define php_mblen(ptr, len) mblen(ptr, len) 155 # define php_mb_reset() php_ignore_value(mblen(NULL, 0)) 156 #endif 157 158 void register_string_constants(INIT_FUNC_ARGS); 159 160 #endif /* PHP_STRING_H */ 161