php限制id为汉字

来源:互联网 发布:位面淘宝txt 编辑:程序博客网 时间:2024/05/22 22:05

如这个:http://www.gdwh.com.cn/blog/member.php

首先选定义函数:

function utf8_str($str){
$mb = mb_strlen($str,'utf-8');
$st = strlen($str);
if($st==0)
return 'true';
if($st==$mb)
exit('Submit illegal parameter!');
if($st%$mb==0 && $st%3==0)
return 'true';
exit('Submit illegal parameter!');
}
function gbk_str($str){
$mb = mb_strlen($str,'gbk');
$st = strlen($str);
if($st==0)
return 'true';
if($st==$mb)
exit('Submit illegal parameter!');
if($st%$mb==0 && $st%2==0)
return 'true';
exit('Submit illegal parameter!');
}

使用自定义函数对id号city用province进行过滤,允许为空值

if(!utf8_str($city)=="true"){
exit('Submit illegal parameter!');
}
if(!utf8_str($province)=="true"){
exit('Submit illegal parameter!');
}

PHP没有直接函数来判断一个字符串是否是纯英文或纯汉字以及汉英混合,只能自己写函数。要想实现此功能就必需对字符集汉字编码占位进行了解,就目前国内比较常用的字符集当属UTF8与GBK了。

UTF8每个汉字等于3个长度;

GBK每个汉字等于2个长度;

利用以上汉字与英文的差异,我们就可以利用mb_strlen函数与strlen函数分别计算出两组长度数字,然后根据规律进行运算即可判断出字符串的类型了。

限制id为数字的方法:

if(!is_numeric($itemid)) {
exit('Submit illegal parameter!');
}

参照本文时,注意将id名字改为你实际应用中的id名称。

在网页编程中严格限制id数据类型可有效的防止sql注入及XSS跨站攻击漏洞。

引用链接:

http://justcoding.iteye.com/blog/1717178

原创粉丝点击