128
128
PHP_FUNCTION(mb_get_info);
129
129
PHP_FUNCTION(mb_check_encoding);
131
MBSTRING_API int php_mb_encoding_translation(TSRMLS_D);
133
131
MBSTRING_API char *php_mb_safe_strrchr_ex(const char *s, unsigned int c,
134
132
size_t nbytes, const mbfl_encoding *enc);
135
133
MBSTRING_API char *php_mb_safe_strrchr(const char *s, unsigned int c,
136
134
size_t nbytes TSRMLS_DC);
137
MBSTRING_API char *php_mb_strrchr(const char *s, char c TSRMLS_DC);
139
136
MBSTRING_API char * php_mb_convert_encoding(const char *input, size_t length,
140
137
const char *_to_encoding,
146
143
MBSTRING_API size_t php_mb_mbchar_bytes_ex(const char *s, const mbfl_encoding *enc);
147
144
MBSTRING_API size_t php_mb_mbchar_bytes(const char *s TSRMLS_DC);
149
MBSTRING_API size_t php_mb_gpc_mbchar_bytes(const char *s TSRMLS_DC);
151
146
MBSTRING_API int php_mb_encoding_detector_ex(const char *arg_string, int arg_length,
152
147
char *arg_list TSRMLS_DC);
154
149
MBSTRING_API int php_mb_encoding_converter_ex(char **str, int *len, const char *encoding_to,
155
150
const char *encoding_from TSRMLS_DC);
156
MBSTRING_API int php_mb_gpc_encoding_converter(char **str, int *len, int num, const char *encoding_to, const char *encoding_from TSRMLS_DC);
158
MBSTRING_API int php_mb_gpc_encoding_detector(char **arg_string, int *arg_length, int num, char *arg_list TSRMLS_DC);
160
151
MBSTRING_API int php_mb_stripos(int mode, const char *old_haystack, unsigned int old_haystack_len, const char *old_needle, unsigned int old_needle_len, long offset, const char *from_encoding TSRMLS_DC);
162
153
/* internal use only */
163
154
int _php_mb_ini_mbstring_internal_encoding_set(const char *new_value, uint new_value_length TSRMLS_DC);
165
156
ZEND_BEGIN_MODULE_GLOBALS(mbstring)
157
char *internal_encoding_name;
166
158
enum mbfl_no_language language;
167
enum mbfl_no_encoding internal_encoding;
168
enum mbfl_no_encoding current_internal_encoding;
169
#ifdef ZEND_MULTIBYTE
170
enum mbfl_no_encoding *script_encoding_list;
171
int script_encoding_list_size;
172
#endif /* ZEND_MULTIBYTE */
173
enum mbfl_no_encoding http_output_encoding;
174
enum mbfl_no_encoding current_http_output_encoding;
175
enum mbfl_no_encoding http_input_identify;
176
enum mbfl_no_encoding http_input_identify_get;
177
enum mbfl_no_encoding http_input_identify_post;
178
enum mbfl_no_encoding http_input_identify_cookie;
179
enum mbfl_no_encoding http_input_identify_string;
180
enum mbfl_no_encoding *http_input_list;
181
int http_input_list_size;
182
enum mbfl_no_encoding *detect_order_list;
183
int detect_order_list_size;
184
enum mbfl_no_encoding *current_detect_order_list;
185
int current_detect_order_list_size;
159
const mbfl_encoding *internal_encoding;
160
const mbfl_encoding *current_internal_encoding;
161
const mbfl_encoding *http_output_encoding;
162
const mbfl_encoding *current_http_output_encoding;
163
const mbfl_encoding *http_input_identify;
164
const mbfl_encoding *http_input_identify_get;
165
const mbfl_encoding *http_input_identify_post;
166
const mbfl_encoding *http_input_identify_cookie;
167
const mbfl_encoding *http_input_identify_string;
168
const mbfl_encoding **http_input_list;
169
size_t http_input_list_size;
170
const mbfl_encoding **detect_order_list;
171
size_t detect_order_list_size;
172
const mbfl_encoding **current_detect_order_list;
173
size_t current_detect_order_list_size;
186
174
enum mbfl_no_encoding *default_detect_order_list;
187
int default_detect_order_list_size;
175
size_t default_detect_order_list_size;
188
176
int filter_illegal_mode;
189
177
int filter_illegal_substchar;
190
178
int current_filter_illegal_mode;