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(0, 9);
        }

        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(1, 3);
            switch ($rand) {
                case 1:
                    $result .= mt_rand(0, 9);
                    break;
                case 2:
                    $result .= chr(mt_rand(65, 90));
                    break;
                default:
                    $result .= chr(mt_rand(97, 122));
                    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_name, microtime(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(0, 15);
            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;
    }
}

关于PHP实用函数集合的文章就分享到这,如果对你有帮助欢迎继续关注我们哦

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/44689.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
php学习php学习订阅用户
上一篇 2022年6月27日
下一篇 2022年6月27日

相关推荐

  • PHP中如何进行打印机和扫描仪应用开发?

    随着信息技术的不断发展,打印机和扫描仪已经成为了现代商务与生活中不可缺少的设备之一。而为了更好地满足用户的需求,开发一款能够优化打印和扫描操作的应用程序,也成为了每个开发者都想要实现的目标。本文将介…

    2023年5月17日
    01
  • 详解php命令行写shell实例

    php 可以像java perl python 那样运行,今天发现如果我早早知道这个,或许我不会去学习java 和 python当年学java不过为了一个程序放在服务器上,不停的跑啊跑,原来 php 也可以。php -h Usage: php [options] [-f] …

    2022年6月18日
    0166
  • PHP的表单处理。

    PHP是一种流行的编程语言,用于构建现代Web应用程序。在Web开发中,表单处理是不可避免的一部分。PHP提供了处理表单的内置功能。在本文中,我们将介绍如何使用PHP处理表单。首先,我们需要了解表单的基本结构。HTML…

    2023年5月28日
    00
  • 我来教你php的配置文件是什么。

    PHP的配置文件通常是php.ini文件。这个文件包含了PHP环境的配置信息,包括错误报告级别、文件上传限制、内存限制等。 PHP配置文件主要用于控制和调整PHP环境的行为,确保它能按照预期的方式运行,以下是一些主要的P…

    2024年6月28日
    00
  • php生成微信红包数组

    php生成微信红包数组 源代码 代码图 效果图

    2018年4月27日
    0219
  • 我来说说php网站如何绑定一级域名到子目录。

    在当今的互联网时代,拥有一个自己的网站已经成为了许多企业和个人的需求,而域名作为网站的标识,也成为了网站的重要组成部分,有时候,我们可能会遇到需要将一级域名绑定到子目录的情况,例如我们希望将www.examp…

    2024年6月29日
    00
  • PHP中的区块链。

    随着区块链技术的不断发展和应用,它已经成为一个热门的话题,受到了广泛的关注。区块链技术不仅被应用在数字货币的交易中,还被应用在金融、医疗、物流等行业中。而在编程方面,区块链技术也有很多应用,其中PHP中…

    2023年5月30日
    00
  • PHP实现短信接口的调用方法。

    随着科技的不断发展,短信服务在现代社会中被广泛地应用,如何实现自己的短信接口调用也成为了一项重要的技能。其中,使用PHP实现短信接口的调用方法简单易懂、效率高,本文将为大家介绍一下具体的实现步骤。实现短…

    2023年5月23日
    03

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息