综合笔记

一些常用实用的PHP方法汇总集合(二)

开发过程中经常会用到一些常用的方法例如经常用到的:获取用户IP,异步请求方法,树形结构,计算时间差,字段替换,随机字符串生成,判断是否包含某个字符串,获取当天时间戳,几天后的时间戳,早晚时间戳,判断浏览客户端,一些简单电话验证规则,邮箱验证规则等等。
  1. 邮箱验证
                                        
                                            

    $email = '1103998860@qq';

    $preg_email = '/^[a-zA-Z0-9]+([-_.][a-zA-Z0-9]+)*@([a-zA-Z0-9]+[-.])+([a-z]{2,5})$/ims';

    if (preg_match($preg_email, $email)) {

    echo 1;

    } else {

    echo 0;

    }

  2. 手机号码验证
                                        
                                            

    $phone='18201613856';
    $preg_phone='/^1[3456789]\d{9}$/ims';
    if(preg_match($preg_phone,$phone)) {
    echo 1;
    } else {
    echo 0;
    }

  3. 验证身份证号
                                        
                                            

    /**

    * 身份证号验证

    * @param $carNo

    * @return bool

    */

    public function is_idcard($carNo) {

    $id = strtoupper($carNo);

    $regx = "/(^\d{15}$)|(^\d{17}([0-9]|X)$)/";

    $arr_split = array();

    if (!preg_match($regx, $id)) {

    return 0;

    }

    if (15 == strlen($id)) {

    $regx = "/^(\d{6})+(\d{2})+(\d{2})+(\d{2})+(\d{3})$/";

    @preg_match($regx, $id, $arr_split);

    $dtm_birth = "19" . $arr_split[2] . '/' . $arr_split[3] . '/' . $arr_split[4];

    if (!strtotime($dtm_birth)) {

    return 1;

    } else {

    return 0;

    }

    } else {

    $regx = "/^(\d{6})+(\d{4})+(\d{2})+(\d{2})+(\d{3})([0-9]|X)$/";

    @preg_match($regx, $id, $arr_split);

    $dtm_birth = $arr_split[2] . '/' . $arr_split[3] . '/' . $arr_split[4];

    if (!strtotime($dtm_birth)) {

    return 0;

    } else {

    $arr_int = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);

    $arr_ch = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');

    $sign = 0;

    for ($i = 0; $i < 17; $i++) {

    $b = (int)$id {

    $i

    }

    ;

    $w = $arr_int[$i];

    $sign += $b * $w;

    }

    $n = $sign % 11;

    $val_num = $arr_ch[$n];

    if ($val_num != substr($id, 17, 1)) {

    return 0;

    } else {

    return 1;

    }

    }

    }

    }


  4. 过滤HTML标签
                                        
                                            

    function filterHtml($str)

    {

        $farr = array(

            "/\s+/",

            "/<(\/?)(script|i?frame|style|html|body|title|link|meta|\?|\%)([^>]*?)>/isU",

            "/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU",

        );

        $str = preg_replace($farr, '', $str);

        return $str;

    }   


  5. 根据日期获取星期几
                                        
                                            

    function get_week($date)
    {
    $date_str = date('Y-m-d', strtotime($date));
    $arr = explode("-", $date_str);
    $year = $arr[0];
    $month = sprintf('%02d', $arr[1]);
    $day = sprintf('%02d', $arr[2]);
    $hour = $minute = $second = 0;
    $strap = mktime($hour, $minute, $second, $month, $day, $year);
    $number_wk = date("w", $strap);
    $weekArr = array("周日", "周一", "周二", "周三", "周四", "周五", "周六");
    return $weekArr[$number_wk];
    }

  6. 生成订单编号
                                        
                                            

    function get_order_num($randLength = 6)
    {
       $dataString = date('YmdHis');
       $orderNum = $dataString . substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, $randLength);
       return $orderNum;
    }