• 技术文章 >php教程 >PHP源码

    正则验证输入方法集合,带有防注入性质

    PHP中文网PHP中文网2016-05-25 17:10:35原创558
    php代码

    <?php
    /*过滤验证方法集合 by joffe 围脖@狂code诗人*/
    /* 转义可能引起sql注入的特殊字符.
    $string 需要转移的字符串;
    $forece 是否强制转换
    #string 转后的字符串.
    */
    $magic_quotes_gpc = get_magic_quotes_gpc();
    function tdsql($string, $force = 0) {
    if(!$GLOBALS['magic_quotes_gpc'] || $force) {
    if(is_array($string)) {
    foreach($string as $key => $val) {
    $string[$key] = tdsql($val, $force); 
    }
    } else {
    $string = addslashes($string);
    }
    }
    return $string;
    }
    
    /*验证是否email
    string 需要验证的字符串
    # boolen 符合email格式返回true,不符合返回false
    */
    function  is_email($string){if (preg_match("/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/",$string)) { return true;} else{return false;}}
    /*验证是否url
    string 需要验证的字符串是否url
    # 是返回true
    */
    function is_url($string){if(preg_match("/^[\w-]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$/",$string)){return true;}else{return false;}}
    
    function is_num($str){return is_numeric($str);}
    function is_chinese($string){if(preg_match("/[^\x00-\xff]/",$string)){return true;}else{return false;}}
    function is_qq($string){if(preg_match('/^(\d{5,10})$/',$string)){return true;}else{return false;};}
    /*安全字符串,就是只含有英文数字和_*/
    function is_safe_str($string){if(preg_match("/^\w+$/",$string)){return true;}else{return false;}}
    /*用户名串只有中英文和数字 6到21字节*/
    function is_username($string){if(preg_match("/^[\x{4e00}-\x{9fa5}a-zA-Z0-9]{6,21}$/u",$string)){return true;}else{return false;}}
    /*密码字符串可以含有部分特殊字符的的 4-18位*/
    function is_passwd($string){if(preg_match("/^[\@A-Za-z0-9\!\#\$\%\^\&\*\.\~]{6,22}$/",$string)){return true;}else{return false;}}
    /*中国身份证*/
    function is_shenfenzheng($string){if(preg_match("/^(\d{18}|\d{15}|\d{17}x)$/",$string)){return true;}else{return false;}}
    /*手机号码 11位简单判断*/
    function is_phone($string){if(preg_match("/^\d{11}$/",$string)){return true;}else{return false;}}
    /*移动手机号码*/
    function is_phone_yd($string){if(preg_match("/^[134-139,147,150-152,157-159,181-183,187-188]\d{9}$/",$string)){return true;}else{return false;}}
    /*联通手机号码*/
    function is_phone_lt($string){if(preg_match("/^[130-132,155,156,185,186]\d{9}$/",$string)){return true;}else{return false;}}
    /*电信手机号码*/
    function is_phone_dx($string){if(preg_match("/^[133,153,180,189]\d{9}$/",$string)){return true;}else{return false;}}
    /*固定电话*/
    function is_telphone($string){if(preg_match("/^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}$/",$string)){return true;}else{return false;}}
    /*验证URL 是否来自本站*/
    if(isset($_GET['url'])){if(!is_myurl($_GET['url'])){$_GET['url']="http://".$_SERVER['HTTP_HOST']."/";}}
    function is_myurl($string){$arr_url = parse_url($string);if($arr_url['host'] == $_SERVER['HTTP_HOST']){return true;}else{return false;}}
    /*用户名可以含有中文*/
    function is_username_cn($string){if(preg_match("/^(?!_|\s\')[A-Za-z0-9_\x80-\xff\s\']{6,27}$/",$string)){return true;}else{return false;};}
    
    ?>
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:php中__call()方法的使用 下一篇:用php写了个正则解析nginx的access log
    千万级数据并发解决方案

    相关文章推荐

    • php得到文件扩展名• PHP使用mail函数发送邮件标题乱码问题解决方法 • PHP 文件上传脚本• ThinkPHP 建议配置(未完成)• 携程基票 sdk
    1/1

    PHP中文网