温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP中有哪些函数集合

发布时间:2021-01-12 18:13:24 阅读:160 作者:Leah 栏目:编程语言
PHP开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

PHP中有哪些函数集合?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

实用函数集合

<?php

if (!function_exists('number_random')) {
    /**
     * 生成随机数字串
     *
     * @param int $length
     * @return string
     */
    function number_random($length 6)
    {
        $result '';
        for ($i 0$i $length$i++) {
            $result .= mt_rand(09);
        }

        return $result;
    }
}

if (!function_exists('string_random')) {
    /**
     * 生成随机字符串
     *
     * @param int $length
     * @return string
     */
    function string_random($length 6)
    {
        $result '';
        for ($i 0$i $length$i++) {
            $rand mt_rand(13);
            switch ($rand) {
                case 1:
                    $result .= mt_rand(09);
                    break;
                case 2:
                    $result .= chr(mt_rand(6590));
                    break;
                default:
                    $result .= chr(mt_rand(97122));
                    break;
            }
        }

        return $result;
    }
}

if (!function_exists('get_order_number')) {
    /**
     * 生成订单号
     *
     * @param int $length
     * @return string
     */
    function get_order_number($length 32)
    {
        $date date('YmdHis');
        $micro explode('.'microtime(true))[1];
        $rand string_random($length - (strlen($date) + strlen($micro)));

        return $date $micro $rand;
    }
}

if (!function_exists('check_bank_card')) {
    /**
     * 验证银行卡号
     *
     * @param string $card
     * @return bool
     */
    function check_bank_card(string $card)
    {
        $arr_no str_split($card);
        $last_n $arr_no[count($arr_no) - 1];
        krsort($arr_no);
        $i 1;
        $total 0;
        foreach ($arr_no as $n) {
            if ($i 2 == 0) {
                $ix $n 2;
                if ($ix >= 10) {
                    $nx 1 + ($ix 10);
                    $total += $nx;
                } else {
                    $total += $ix;
                }
            } else {
                $total += $n;
            }
            $i++;
        }
        $total -= $last_n;
        $total *= 9;

        return $last_n == ($total 10);
    }
}

if (!function_exists('blocking_lock')) {
    /**
     * 阻塞锁
     *
     * @param string $lock_name 锁名字
     * @param int $valid 有效秒数
     * @return mixed
     */
    function blocking_lock(string $lock_name$valid 3600)
    {
        $lock_key 'blocking_lock';
        while ($exp Redis::hget($lock_key$lock_name)) {
            if ($exp microtime(true)) {
                Redis::hdel($lock_key$lock_name);
            }
            usleep(10);
        }

        return Redis::hset($lock_key$lock_namemicrotime(true) + $valid);
    }
}

if (!function_exists('blocking_unlock')) {
    /**
     * 释放阻塞锁
     *
     * @param string $lock_name
     * @return mixed
     */
    function blocking_unlock(string $lock_name)
    {
        $lock_key 'blocking_lock';

        return Redis::hdel($lock_key$lock_name);
    }
}

if (!function_exists('random_color')) {
    /**
     * 随机十六进制颜色
     *
     * @return string
     */
    function random_color()
    {
        $str '#';
        for ($i 0$i 6$i++) {
            $randNum rand(015);
            switch ($randNum) {
                case 10:
                    $randNum 'a';
                    break;
                case 11:
                    $randNum 'b';
                    break;
                case 12:
                    $randNum 'c';
                    break;
                case 13:
                    $randNum 'd';
                    break;
                case 14:
                    $randNum 'e';
                    break;
                case 15:
                    $randNum 'f';
                    break;
            }
            $str .= $randNum;
        }

        return $str;
    }
}

if (!function_exists('get_hour_history')) {
    /**
     * 获取当日历史小时
     *
     * @return array
     */
    function get_hour_history()
    {
        $history = [];
        for ($i 0$i <= date('H'); $i++) {
            $history[] = $i;
        }

        return $history;
    }
}

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI

开发者交流群×