php functions 生成唯一码
<?php /**
* 微擎密码生成
*
*/ function we7password($passwordinput, $salt, $authkey)
{
$passwordinput = "{$passwordinput}-{$salt}-{$authkey}";
return sha1($passwordinput);
} /*****************************************时间相关函数*********************************************** */ /**
* @title 计算时间差
* @author lyj [author] [2018-06-07]
* @param [type] $datetimeStr1 [日期时间字符串1]
* @param [type] $datetimeStr2 [日期时间字符串2]
* @return [type] [返回秒数]
*/
function getDateTimeDifference($datetimeStr1, $datetimeStr2)
{
return strtotime($datetimeStr1) - strtotime($datetimeStr2);
} /**
* @title 时间戳 转 日期时间字符串
* @author lyj [author] [2018-06-07]
* @param [type] $timeStamp [时间戳 数字]
* @param string $pattern [日期时间格式 Y-m-d H:i:s]
* @return [type] [返回 日期时间字符串]
*/
function getDateTimeStr($timeStamp = null, $pattern = 'Y-m-d H:i:s')
{
if ($timeStamp == null || !is_int($timeStamp)) {
return date($pattern);
} else {
return date($pattern, $timeStamp);
}
} /**
* @title 根据需要返回对应时间戳
* @author lyj [author] [2018-06-04]
* @param string $config [description]
* @return [type] [description]
*/
function getTimestamp($config = '')
{
switch ($config) {
case '1':
// 返回 明天 的Unix时间戳
return strtotime("+1 day");
break;
case '2':
// 返回 昨天 的Unix时间戳
return strtotime("-1 day");
break;
case '3':
// 返回 下月 的Unix时间戳
return strtotime("+1 month");
break;
case '4':
// 返回 上月 的Unix时间戳
return strtotime("-1 month");
break;
case '5':
// 返回 明年 的Unix时间戳
return strtotime("+1 year");
break;
case '6':
// 返回 上年 的Unix时间戳
return strtotime("-1 year");
break;
case '7':
// 返回 下星期 的Unix时间戳
return strtotime("+1 week");
break;
case '8':
// 返回 上星期 的Unix时间戳
return strtotime("-1 week");
break;
case '9':
// 返回 本月第一天 的Unix时间戳
return strtotime(date("Y-m-01 H:i:s"));
break;
case '10':
// 返回 本月最后一天 的Unix时间戳
return strtotime(date("Y-m-t H:i:s"));
break;
case '11':
// 返回 本周第一天 的Unix时间戳
return strtotime("this week");
break;
case '12':
// 返回 本周最后一天 的Unix时间戳
return strtotime("last day this week");
break; case '13':
// 返回 今年开始 的Unix时间戳
return strtotime(date("Y-m-d"));
break;
default:
// 返回 当前 的Unix时间戳
return time();
break;
}
} /*****************************************时间相关函数*********************************************** */ /*****************************************工具类函数*********************************************** */ /**
* 获取二维数组中某列 $colstr 的最大最小值
*/
function getMaxAndMinInArr($arr, $colstr = 0)
{
//求colstr这一列的最大值
$max = 0;
foreach ($arr as $key => $val) {
$max = max($max, $val[$colstr]);
} //求colstr这一列的最小值
$min = $max;
foreach ($arr as $key => $val) {
$min = min($min, $val[$colstr]);
} return array('max' => $max, 'min' => $min);
} /**
* @param int $n 参数。188752
* @param int $length 要保存的小数位
* @param bool $status 当为true时四舍五入保存
* @return double 返回数据
*/
function decimals($n = 0, $length = 2, $status = false)
{
if ($status === true) {
$num = round($n, $length);
return $num;
}
$n = (string) $n;
$n = explode('.', $n);
$n[0] .= '.';
for ($i = 0; $i < $length; $i++) {
$n[0] .= !isset($n[1][$i]) ? '0' : $n[1][$i];
}
return $n[0];
} /**
* 获取唯一码
* @param int $len
* @return string
*/
function get_uni_code($len = 8)
{
$code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$rand = $code[rand(0, 25)]
. strtoupper(dechex(date('m')))
. date('d') . substr(time(), -5)
. substr(microtime(), 2, 5)
. sprintf('%02d', rand(0, 99));
for (
$a = md5($rand),
$s = '0123456789ABCDEFGHIJKLMNOPQRSTUV',
$d = '',
$f = 0;
$f < $len;
$g = ord($a[$f]),
$d .= $s[($g ^ ord($a[$f])) - $g & 0x1F],
$f++
); return $d;
} /**
* 根据两点经纬度计算距离
* @param $lat1 点1纬度
* @param $lng1 点1经度
* @param $lat2 点2纬度
* @param $lng2 点2经度
* @return float 距离单位:千米
*/
function get_distance($lat1, $lng1, $lat2, $lng2)
{
$earthRadius = 6371.004;
$lat1 = ($lat1 * pi()) / 180;
$lng1 = ($lng1 * pi()) / 180;
$lat2 = ($lat2 * pi()) / 180;
$lng2 = ($lng2 * pi()) / 180;
$calcLongitude = $lng2 - $lng1;
$calcLatitude = $lat2 - $lat1;
$stepOne = pow(sin($calcLatitude / 2), 2) + cos($lat1) * cos($lat2) * pow(sin($calcLongitude / 2), 2);
$stepTwo = 2 * asin(min(1, sqrt($stepOne)));
$calculatedDistance = $earthRadius * $stepTwo; return sprintf("%.2f", $calculatedDistance);
} /**
* @title 随机字符串
* @author lyj [author] [2018-06-08]
* @param integer $length [字符长度]
* @param string $type [类型 数字 大写字母 小写字母 全部]
* @param integer $convert [大小写 大于0 大写 小于0 小写]
* @return [type] [description]
*
* echo random(32,'all',-45646);
*/
function random($length = 6, $type = 'all', $convert = 0)
{
$config = array(
'number' => '1234567890',
'capital_letter'=> 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'small_letter'=> 'abcdefghijklmnopqrstuvwxyz',
'all' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
); if (!isset($config[$type])) {
$type = 'string';
}
$string = $config[$type]; $code = '';
$strlen = strlen($string) - 1;
for ($i = 0; $i < $length; $i++) {
$code .= $string{mt_rand(0, $strlen)};
}
if ($convert != 0) {
$code = ($convert > 0) ? strtoupper($code) : strtolower($code);
}
return $code;
} /**
* @title 去除代码中的空白和注释
* @author lyj [author] [2018-06-08]
* @param [type] $content [php文件内容]
* @return [type] [清空空白和注释后的代码]
*
*
* 使用说明
* $phpstr = file_get_contents("E:/www/test/functions.php");
* $phpstr_new = strip_whitespace($phpstr);
* file_put_contents('E:/www/test/newphp.php', $phpstr_new);
*/
function strip_whitespace($content)
{
$stripStr = '';
//分析php源码
$tokens = token_get_all($content);
$last_space = false;
for ($i = 0, $j = count($tokens); $i < $j; $i++) {
if (is_string($tokens[$i])) {
$last_space = false;
$stripStr .= $tokens[$i];
} else {
switch ($tokens[$i][0]) {
//过滤各种PHP注释
case T_COMMENT:
case T_DOC_COMMENT:
break;
//过滤空格
case T_WHITESPACE:
if (!$last_space) {
$stripStr .= ' ';
$last_space = true;
}
break;
case T_START_HEREDOC:
$stripStr .= "<<<THINK\n";
break;
case T_END_HEREDOC:
$stripStr .= "THINK;\n";
for($k = $i+1; $k < $j; $k++) {
if(is_string($tokens[$k]) && $tokens[$k] == ';') {
$i = $k;
break;
} else if($tokens[$k][0] == T_CLOSE_TAG) {
break;
}
}
break;
default:
$last_space = false;
$stripStr .= $tokens[$i][1];
}
}
}
return $stripStr;
} if (!function_exists('arr_multi_sort')) { /**
* 根据二维数组某列 排序
*
* @param [type] $arr 数组
* @param [type] $arg 列的键值
* @param string $sort 排序类型 asc 升序 desc 降序 默认升序
* @return void
*/
function arr_multi_sort(&$arr,$arg,$sort = 'asc')
{
$sort = $sort=='asc'?SORT_ASC:SORT_DESC;
$column_data = array_column($arr,$arg);
array_multisort($column_data,$sort,$arr);
}
} if (!function_exists('log2txt')) { /**
* 写入日志
*
* @param [type] $values
* @param string $dir
* @return void
*/
function log2txt($values, $dir = 'lyj')
{
// 如果数据是数组则转换成字符
if (is_array($values)) {
$values = print_r($values, true);
} // 日志内容
$content = '[' . date('Y-m-d H:i:s') . ']' . PHP_EOL . $values . PHP_EOL . PHP_EOL;
try {
// 文件路径
$filePath = $dir . '/logs/';
// 路径不存在则创建
!is_dir($filePath) && mkdir($filePath, 0755, true);
// 写入文件
return file_put_contents($filePath . date('Y-m-d') . '.log', $content . PHP_EOL . PHP_EOL, FILE_APPEND);
} catch (\Exception $e) {
return false;
}
} } /*****************************************工具类函数*********************************************** */ $arr = [
'a' => [
'name' => '对的',
'num' => 20,
],
'b' => [
'name' => 'as',
'num' => 32,
],
'c' => [
'name' => '对方答复',
'num' => 1,
],
]; print_r($arr); arr_multi_sort($arr, 'num', desc); print_r($arr);
php functions 生成唯一码的更多相关文章
- Guid.NewGuid().ToString()生成唯一码js
Guid.NewGuid().ToString() 生成唯一码,用户生成随机id 生成唯一编码,版本控制对比等. //表示全局唯一标识符 (GUID). function Guid(g) { var ...
- Python 根据id生成唯一码
Python 根据id生成唯一码 最近业务中遇到需要分享某个文案,复制文案打开APP需要提取文案中包含的id,但又不想明文暴露id,所以需要对id进行加密,很想让前端来做,可惜多个前端协调起来不方便( ...
- C#生成唯一码方法
一.时间戳方法 private string CreateId() { TimeSpan ts = DateTime.UtcNow - , , , , , , ); return Convert.To ...
- C#生成唯一的ID保存到数据库
直接用.NET Framework 提供的 Guid() 函数: Guid.NewGuid()是指生成唯一码的规则 System.Guid.NewGuid().ToString()全球唯一标识符 (G ...
- Python 练习册--生成唯一激活码(邀请码)
题目是这样子的: 做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? 分析 其实要生成 ...
- PHP生成唯一的促销/优惠/折扣码,由字母和数字组成。
首先我们先搞清楚什么是促销/优惠/折扣码?它有什么用作: 每一个电子商务网站,现在有一种或多种类型的优惠/折扣/优惠券系统,给大家分享一下如何在PHP生成唯一的促销/折扣码.主要是实现一个优惠码系统, ...
- php生成唯一随机码
最终使用: echo md5(time() . mt_rand(1,1000000)) //A:利用时间戳的方法 md5("admin"); // B:32位MD5加密 subst ...
- PHP使用SnowFlake算法生成唯一ID
前言:最近需要做一套CMS系统,由于功能比较单一,而且要求灵活,所以放弃了WP这样的成熟系统,自己做一套相对简单一点的.文章的详情页URL想要做成url伪静态的格式即xxx.html 其中xxx考虑过 ...
- 转:C#生成唯一值的方法汇总
这篇文章主要介绍了C#生成唯一值的方法汇总,有需要的朋友可以参考一下 生成唯一值的方法很多,下面就不同环境下生成的唯一标识方法一一介绍,作为工作中的一次总结,有兴趣的可以自行测试: 一.在 .NET ...
- Android设备唯一码的获取
Android设备唯一码的获取 UTDID是集团无线设备统一ID方案,目的是给每一台设备一个ID,作为唯一标识.UTDID由客户端生成,并在设备中各个客户端之间共享.UTDID的生成中包含时间戳和随机 ...
随机推荐
- 1月12日内容总结——文件和文件索引、链接、系统时间、克隆、定时任务、paramiko模块、公钥私钥、paramiko代码封装
目录 一.文件相关信息 二.文件索引信息 三.链接信息 四.系统时间 五.机器克隆 六.定时任务 七.paramiko模块 八.公钥私钥 九.paramiko其他操作 十.代码封装 十一.面试题回忆 ...
- 发布在IIS的apk或者ipa文件无法访问
1.在Startup.cs的Configure方法中添加如下代码 var provider = new FileExtensionContentTypeProvider(); provid ...
- 如何通过C#/VB.NET代码在Word中更改字体颜色
在日常工作中,我们有时会需要修改字体的颜色来突出文本重点,让读者更容易抓住文章要点.在今天这篇文章中,我将为大家介绍如何以编程方式,在Word更改字体颜色.本文将分为两部分分别介绍如何实现此操作.以下 ...
- Unreal 各种指针类型是怎么回事
引言 读完本篇文章,你会了解为何UE中C++作为其开发语言,使用的指针,为何各式各样. 你需要对UE有所了解,如果不了解也没关系,也可以看下这篇文章,就当了解一下最复杂的应用的系统指针设计是如何. 可 ...
- Hadoop 及Spark 分布式HA运行环境搭建
作者:京东物流 秦彪 工欲善其事必先利其器,在深入学习大数据相关技术之前,先手动从0到1搭建一个属于自己的本地Hadoop和Spark运行环境,对于继续研究大数据生态圈各类技术具有重要意义.本文旨在站 ...
- Vue框架:9,Vue3的用法,setup函数,ref和reactive,计算属性和监听属性,生命周期,toRefs,script setup的作用和lang,Vue后台管理模板
目录 前端开发之Vue框架 一.Vue3 1.Vue3创建项目 2.setup函数 3.ref和reactive 4.计算属性和监听属性 5.生命周期 6.toRefs 7.script setup的 ...
- JZOJ 3469. 【NOIP2013模拟联考7】数列(sequence)
\(\text{Solution}\) 明显的 \(\text{K-D Tree}\) 基操题 提前给出了数列,那么考虑提前建好树,省去重构 但还是要开 \(O\) \(\text{Code}\) # ...
- el-dialog中中使用echarts
1.在dialog中使用open方法 <el-dialog :title="diaTitle" :visible.sync="dialogVisible" ...
- webgl 系列 —— 绘制一个点(版本2、版本3、版本4、版本5)
绘制一个点 我们初步认识了 webgl,本篇主要围绕绘制一个点的示例,逐步实现下面功能: 点的位置从 js 传入着色器 点的大小由 js 传入着色器 通过鼠标点击绘点 通过鼠标点击绘点,并改变点的颜色 ...
- Angular ngx-translate中英文切换
1.安装包 npm install @ngx-translate/core --save npm install @ngx-translate/http-loader --save 2.根模块app. ...