您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 株洲分类信息网,免费分类信息发布

php addslashes函数_PHP教程

2024/3/31 22:54:51发布37次查看
php addslashes函数最终对应的c函数为:
3244 phpapi char *php_addslashes_ex(char *str, int length, int *new_length, int should_free, int ignore_sybase ts     rmls_dc)
3245 {
3246     /* maximum string length, worst case situation */
3247     char *new_str;
3248     char *source, *target;
3249     char *end;
3250     int local_new_length;
3251 
3252     if (!new_length) {
3253         new_length = &local_new_length;
3254     }
3255     if (!str) {
3256         *new_length = 0;
3257         return str;
3258     }
3259     new_str = (char *) safe_emalloc(2, (length ? length : (length = strlen(str))), 1);
3260     source = str;
3261     end = source + length;
3262     target = new_str;
3263 
3264     if (!ignore_sybase && pg(magic_quotes_sybase)) {
3265         while (source 3266             switch (*source) {
3267                 case '\0':
3268                     *target++ = '\\';
3269                     *target++ = '0';
3270                     break;
3271                 case '\'':
3272                     *target++ = '\'';
3273                     *target++ = '\'';
3274                     break;
3275                 default:
3276                     *target++ = *source;
3277                     break;
3278             }
3279             source++;
3280         }
3281     } else {
3282         while (source 3283             switch (*source) {
3284                 case '\0':
3285                     *target++ = '\\';
3286                     *target++ = '0';
3287                     break;
3288                 case '\'':
3289                 case '\':
3290                 case '\\':
3291                     *target++ = '\\';
3292                     /* break is missing *intentionally* */
3293                 default:
3294                     *target++ = *source;
3295                     break;
3296             }
3297 
3298             source++;
3299         }
3300     }
3301 
3302     *target = 0;
3303     *new_length = target - new_str;
3304     if (should_free) {
3305         str_free(str);
3306     }
3307     new_str = (char *) erealloc(new_str, *new_length + 1);
3308     return new_str;
3309 }
从上面看addslashes函数处理的是单字节的字节。
但是gbk编码是双字节的。而且5c又可以做双字节的低位。
http://www.bkjia.com/phpjc/477745.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/477745.htmltecharticlephp addslashes函数最终对应的c函数为: 3244 phpapi char *php_addslashes_ex(char *str, int length, int *new_length, int should_free, int ignore_sybase ts rmls_dc) 3245 { 32...
株洲分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录