28static void php_filter_encode_html(
zval *
value,
const unsigned char *chars)
33 unsigned char *e =
s +
len;
41 smart_str_appendl(&str,
"&#", 2);
43 smart_str_appendc(&str,
';');
46 smart_str_appendc(&str, *
s);
55static const unsigned char hexchars[] =
"0123456789ABCDEF";
57#define LOWALPHA "abcdefghijklmnopqrstuvwxyz"
58#define HIALPHA "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
59#define DIGIT "0123456789"
61#define DEFAULT_URL_ENCODE LOWALPHA HIALPHA DIGIT "-._"
63static void php_filter_encode_url(
zval *
value,
const unsigned char* chars,
const int char_len,
int high,
int low,
int encode_nul)
66 unsigned char tmp[256];
67 unsigned char *
s = (
unsigned char *)chars;
68 unsigned char *e =
s + char_len;
71 memset(tmp, 1,
sizeof(tmp)-1);
85 *
p++ = hexchars[(
unsigned char) *
s >> 4];
86 *
p++ = hexchars[(
unsigned char) *
s & 15];
136static void filter_map_update(
filter_map *map,
int flag,
const unsigned char *allowed_list)
140 l =
strlen((
const char*)allowed_list);
141 for (i = 0; i < l; ++i) {
142 (*map)[allowed_list[i]] = flag;
156 if ((*map)[str[i]]) {
173 unsigned char enc[256] = {0};
183 enc[
'\''] = enc[
'"'] = 1;
192 memset(enc + 127, 1,
sizeof(enc) - 127);
195 php_filter_encode_html(
value, enc);
226 unsigned char enc[256] = {0};
231 enc[
'\''] = enc[
'"'] = enc[
'<'] = enc[
'>'] = enc[
'&'] = enc[0] = 1;
237 memset(enc + 127, 1,
sizeof(enc) - 127);
240 php_filter_encode_html(
value, enc);
268 unsigned char enc[256] = {0};
279 memset(enc + 127, 1,
sizeof(enc) - 127);
282 php_filter_encode_html(
value, enc);
292#define EXTRA "!*'(),"
293#define NATIONAL "{}|\\^~[]`"
294#define PUNCTUATION "<>#%\""
295#define RESERVED ";/?:@&="
303 filter_map_init(&map);
304 filter_map_update(&map, 1, allowed_list);
305 filter_map_apply(
value, &map);
317 filter_map_init(&map);
318 filter_map_update(&map, 1, allowed_list);
319 filter_map_apply(
value, &map);
327 const unsigned char allowed_list[] =
"+-" DIGIT;
330 filter_map_init(&map);
331 filter_map_update(&map, 1, allowed_list);
332 filter_map_apply(
value, &map);
340 const unsigned char allowed_list[] =
"+-" DIGIT;
343 filter_map_init(&map);
344 filter_map_update(&map, 1, allowed_list);
348 filter_map_update(&map, 2, (
const unsigned char *)
".");
351 filter_map_update(&map, 3, (
const unsigned char *)
",");
354 filter_map_update(&map, 4, (
const unsigned char *)
"eE");
356 filter_map_apply(
value, &map);
memset(ptr, 0, type->size)
zend_ffi_ctype_name_buf buf
#define FILTER_FLAG_NO_ENCODE_QUOTES
#define FILTER_FLAG_STRIP_HIGH
#define FILTER_FLAG_ALLOW_THOUSAND
#define FILTER_FLAG_ENCODE_AMP
#define FILTER_FLAG_STRIP_LOW
#define FILTER_FLAG_EMPTY_STRING_NULL
#define FILTER_FLAG_ALLOW_FRACTION
#define FILTER_FLAG_ENCODE_LOW
#define FILTER_FLAG_ENCODE_HIGH
#define FILTER_FLAG_ALLOW_SCIENTIFIC
#define FILTER_FLAG_STRIP_BACKTICK
PHPAPI zend_string * php_escape_html_entities_ex(const unsigned char *old, size_t oldlen, int all, int flags, const char *hint_charset, bool double_encode, bool quiet)
#define PHP_INPUT_FILTER_PARAM_DECL
PHPAPI size_t php_strip_tags_ex(char *rbuf, size_t len, const char *allow, size_t allow_len, bool allow_tag_spaces)
PHPAPI zend_string * php_addslashes(zend_string *str)
void php_filter_special_chars(PHP_INPUT_FILTER_PARAM_DECL)
void php_filter_string(PHP_INPUT_FILTER_PARAM_DECL)
void php_filter_email(PHP_INPUT_FILTER_PARAM_DECL)
void php_filter_number_float(PHP_INPUT_FILTER_PARAM_DECL)
#define DEFAULT_URL_ENCODE
void php_filter_encoded(PHP_INPUT_FILTER_PARAM_DECL)
void php_filter_full_special_chars(PHP_INPUT_FILTER_PARAM_DECL)
unsigned long filter_map[256]
void php_filter_add_slashes(PHP_INPUT_FILTER_PARAM_DECL)
void php_filter_unsafe_raw(PHP_INPUT_FILTER_PARAM_DECL)
void php_filter_number_int(PHP_INPUT_FILTER_PARAM_DECL)
void php_filter_url(PHP_INPUT_FILTER_PARAM_DECL)
#define ZVAL_STRINGL(z, s, l)
#define ZVAL_EMPTY_STRING(z)
struct _zend_string zend_string
#define Z_STRVAL_P(zval_p)
#define Z_REFCOUNTED_P(zval_p)
#define Z_STRLEN_P(zval_p)
#define ZVAL_NEW_STR(z, s)
ZEND_API void zval_ptr_dtor(zval *zval_ptr)