+ -
当前位置:首页 → 问答吧 → 一个垃圾Class但可能有不少人需要

一个垃圾Class但可能有不少人需要

时间:2007-08-01

来源:互联网

-_-!
怎么个垃圾就自己看吧...
我从我的class扒出来的...
复制PHP内容到剪贴板
PHP代码:

<?php
/**
 * Check检测类
 * 版本:0.4.1
 * 作者:Lazy
 * Email:o0lazy0o at gmail dot com
* Log:根据自己的需要添加了几个检测功能IP,DSN,身份证
* 修复身份证的一个小小bug...判断x大小写的问题... 
* -___-!!
 */
Class check{

    /**
     * 构造函数
     * 默认:空,不做任何处理.
     */
    Function check(){
    }

    /**
     * IsUsername函数:检测是否符合用户名格式
     * $Argv是要检测的用户名参数
     * $RegExp是要进行检测的正则语句
     * 返回值:符合用户名格式返回用户名,不是返回false
     */
    Function is_username($Argv){
        $RegExp='/^[a-zA-Z0-9_]{3,16}$/';        //由大小写字母跟数字组成并且长度在3-16字符直接
        return preg_match($RegExp,$Argv)?$Argv:false;
    }

    /**
     * IsMail函数:检测是否为正确的邮件格式
     * $Argv是要检测的用户名参数
     * $RegExp是要进行检测的正则语句
     * 返回值:是正确的邮件格式返回邮件,不是返回false
     */
    Function is_mail($Argv){
        $RegExp='/^[a-z0-9][a-z\.0-9-_]+@[a-z0-9_-]+(?:\.[a-z]{0,3}\.[a-z]{0,2}|\.[a-z]{0,3}|\.[a-z]{0,2})$/i';
        return preg_match($RegExp,$Argv)?$Argv:false;
    }

    /**
     * IsSmae函数:检测参数的值是否相同
     * $ArgvOne,$ArgvTwo是要进行检测的值
     * $Force是否进行增强行检测,是同时检测变量类型,默认为否
     * 返回值:相同返回true,不相同返回false
     */
    Function is_same($ArgvOne,$ArgvTwo,$Force=false){
        return $Force?$ArgvOne===$ArgvTwo:$ArgvOne==$ArgvTwo;
    }

    /**
     * IsQQ函数:检测参数的值是否符合QQ号码的格式
     * $Argv是要检测的QQ参数
     * $RegExp是要进行检测的正则语句
     * 返回值:是正确的QQ号码返回QQ号码,不是返回false
     */
    Function is_qq($Argv){
        $RegExp='/^[1-9][0-9]{5,11}$/';
        return preg_match($RegExp,$Argv)?$Argv:false;
    }

    /**
     * IsMobile函数:检测参数的值是否为正确的中国手机号码格式
     * $Argv是要检测的手机号码参数
     * $RegExp是要进行检测的正则语句
     * 返回值:是正确的手机号码返回手机号码,不是返回false
     */
    Function is_mobile($Argv){
        $RegExp='/^(?:13|15|18)[0-9]{9}$/';
        return preg_match($RegExp,$Argv)?$Argv:false;
    }

    /**
     * IsTel函数:检测参数的值是否为正取的中国电话号码格式包括区号
     * $Argv是要检测的电话号码参数
     * $RegExp是要进行检测的正则语句
     * 返回值:是正确的电话号码返回电话号码,不是返回false
     */
    Function is_tel($Argv){
        $RegExp='/[0-9]{3,4}-[0-9]{7,8}$/';
        return preg_match($RegExp,$Argv)?$Argv:false;
    }

    /**
     * IsNickname函数:检测参数的值是否为正确的昵称格式(Beta)
     * $Argv是要检测的昵称格式参数
     * $RegExp是要进行检测的正则语句
     * 返回值:是正确的昵称格式返回昵称格式,不是返回false
     */
    Function is_nickname($Argv){
        $RegExp='/^\s*$|^c:\\con\\con$|[%,\*\"\s\t\<\>\&\'\(\)]|\xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8/is';        //Copy From DZ
        return preg_match($RegExp,$Argv)?false:$Argv;
    }

    /**
     * IsChinese函数:检测参数是否为中文
     * $Argv是要检测的字符内码范围
     * $RegExp是要进行检测的正则语句
     * 返回值:是返回参数,不是返回false
     */
    function is_chinese($Argv,$Encoding='utf8'){
        $RegExp = $Encoding=='utf8'?'/^[\x{4e00}-\x{9fa5}]+$/u':'/^([\x80-\xFF][\x80-\xFF])+$/';
        Return preg_match($RegExp,$Argv)?$Argv:False;
    }

    /**
     * IsDSN函数:简单的检测是否符合DSN规格
     * DSN格式如下:scheme://username:password@hostname:port/path
     */
    function is_dsn($Argv){
        $RegExp='/^(?:[a-z]{3,12}:\/\/[^:]+:[^@]+@[^:]+:[^\/]+\/[a-z_][a-z0-9_]+|[a-z]{5,12}:\/\/[^:]+:[^@]+@[^\/]+\/[a-z_][a-z0-9_]+|[a-z]{5,12}:\/\/[^@]+@[^:]+:[^\/]+\/[a-z_][a-z0-9_]+|[a-z]{5,12}:\/\/[^@]+@[^\/]+\/[a-z_][a-z0-9_]+)$/';//有bug,不想修复 ^^!
        return preg_match($RegExp,$Argv)?$Argv:false;
    }

    /**
     * 检测参数是否为数值
     */
    function is_number($Argv){
        return is_numeric($Argv)?intval($Argv):false;
    }

    /**
     * 检测参数是否为字母
     */
    function is_alpha($Argv){
        return ctype_alpha($Argv)?$Argv:false;
    }
    
    /**
     * 检测参数长度是否超过一个值
     */
    function is_length($Argv,$Size){
        return (strlen($Argv) > $Size)?false:$Argv;
    }

    /**
     * 简单的检测参数是否为IP
     */
    function is_ip($IP){
        $Result = ip2long($this->Server);
        return ($Resul==-1 || $Result==false)?false:$IP;
    }

     /**
      * 检测参数是否为正确的身份证号码,只支持18位身份证,不做区域/年份/性别判断,只做检验.
      */
    function is_id($ID){
        $Weighting = array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
        $Verify = array(1,0,'X',9,8,7,6,5,4,3,2);
        //$Length = strlen($ID);
        $Sum = 0;
        $Regexp = '/[1-6][1-6][0-9]{15}[0-9x]/i';
        if(!preg_match($Regexp,$ID)){
            return false;
        }
        $Last = substr($ID,17,1);
        for($I=0;$I<17;$I++){
            $Sum = $Sum+intval(substr($ID,$I,1))*$Weighting[$I];
        }
        $Y = $Sum % 11;
        if(strtoupper($Last) != $Verify[$Y]){
            return false;
        }
        return true;
    }
}
?>

[ 本帖最后由 lazy 于 2007-11-11 19:50 编辑 ]

作者: lazy   发布时间: 2007-08-01

呵呵
还不错

作者: fengyun   发布时间: 2007-08-01

作者: wukeyuan   发布时间: 2007-08-01

呵呵,好CLASS,收下

作者: shzhrui   发布时间: 2007-08-05

恩~~收下了
好好研究 正则

作者: njuptsoz   发布时间: 2007-08-06

不错,可以学习下正则!

作者: 网鬼   发布时间: 2007-08-06

比较好得东西哈,呵呵,学习!

作者: qs9515   发布时间: 2007-08-08

好东西,,省得我自己写验证了,.,哈哈

作者: dmkf   发布时间: 2007-08-09

总之是一个功能类。。。一堆破函数的封装而已。。
鼓励

作者: thankwsx   发布时间: 2007-08-10

引用:
原帖由 lazy 于 2007-8-1 13:51 发表
-_-!
怎么个垃圾就自己看吧...
我从我的class扒出来的...
复制PHP内容到剪贴板
PHP代码:


支持一下,不过:
你的标题是谦虚还是没自信?
对自己的劳动成果如此评价何意?
如果你觉得你的作品有价值就大胆发表好了,工作没有垃圾不垃圾,只有价值高低

作者: hiler   发布时间: 2007-08-10

确实垃圾,呵呵

作者: ysixin   发布时间: 2007-08-11

的确。。这样的类还不如一个函数集文件包含近来用的方便。

作者: 玉面修罗   发布时间: 2007-08-12

懒得写了,就用你的吧

作者: php_lover   发布时间: 2007-08-13

不觉的垃圾  感觉很使用 希望多来点

作者: redmangame   发布时间: 2007-08-14

:)

作者: 特蓝克斯   发布时间: 2007-08-15

哈哈~~~

作者: caiyuerui   发布时间: 2007-08-15

不错.就是类方法少了点
呵呵.多加点就更好了

作者: 逆雪寒   发布时间: 2007-08-21

很好呀
给你顶上去  看还有没有像我这样的新手要用
如楼上所说  再多加点丰富了就更好了
完全可以拿来就用呀

作者: xiaoxiao0503   发布时间: 2007-09-09

晕,楼主绝对是高才生

作者: houhuiyang   发布时间: 2007-09-29

如果是php5,如果一定要封装起来,建议使用静态方法

作者: sentrychen   发布时间: 2007-09-30

记号,看用不用得上。

作者: chouyu   发布时间: 2007-10-18

版本更新:根据自己的需要添加了几个检测功能IP,DSN,身份证

作者: lazy   发布时间: 2007-11-10

作者: luzhou   发布时间: 2007-11-10

版本小小小更新.....
update log:修复身份证的一个小小bug...判断x大小写的问题.

作者: lazy   发布时间: 2007-11-11

我也想回广东

作者: php没伞的男孩   发布时间: 2007-11-15

除了正则可以借鉴没别的了

作者: neuron   发布时间: 2007-11-16

不错,,,

作者: kupe   发布时间: 2007-11-23