PHP生成随机或者唯一字符串
本文出至:新太潮流网络博客
/**
* [生成随机字符串]
* @E-mial wuliqiang_aa@163.com
* @TIME 2017-04-07
* @WEB http://blog.iinu.com.cn
* @param integer $length [生成的长度]
* @param integer $type [生成的类型]
* @return [type] str [description]
* @php 随机码类型:0,数字+大写字母;1,数字;2,小写字母;3,大写字母;4,特殊字符;-1,数字+大小写字母+特殊字符
*/
function randCode($length = 5, $type = 0) {
$arr = array(1 => "0123456789", 2 => "abcdefghijklmnopqrstuvwxyz", 3 => "ABCDEFGHIJKLMNOPQRSTUVWXYZ", 4 => "~@#$%^&*(){}[]|");
if ($type == 0) {
array_pop($arr);
$string = implode("", $arr);
} else if ($type == "-1") {
$string = implode("", $arr);
} else {
$string = $arr[$type];
}
$count = strlen($string) - 1;
for ($i = 0; $i < $length; $i++) {
$str[$i] = $string[rand(0, $count)];
$code .= $str[$i];
}
return $code;
} /**
* [生成唯一字符串]
* @E-mial wuliqiang_aa@163.com
* @TIME 2017-04-07
* @WEB http://blog.iinu.com.cn
* @ 0-存数字字符串;1-小写字母字符串;2-大写字母字符串;3-大小写数字字符串;4-字符;
* 5-数字,小写,大写,字符混合
* @param integer $type [字符串的类型]
* @param integer $length [字符串的长度]
* @param integer $time [是否带时间1-带,0-不带]
* @return [string] $str [返回唯一字符串]
*/
function randSole($type = 0,$length = 18,$time=0){
$str = $time == 0 ? '':date('YmdHis',time());
switch ($type) {
case 0:
for((int)$i = 0;$i <= $length;$i++){
if(mb_strlen($str) == $length){
$str = $str;
}else{
$str .= rand(0,9);
}
}
break;
case 1:
for((int)$i = 0;$i <= $length;$i++){
if(mb_strlen($str) == $length){
$str = $str;
}else{
$rand = "qwertyuioplkjhgfdsazxcvbnm";
$str .= $rand{mt_rand(0,26)};
}
}
break;
case 2:
for((int)$i = 0;$i <= $length;$i++){
if(mb_strlen($str) == $length){
$str = $str;
}else{
$rand = "QWERTYUIOPLKJHGFDSAZXCVBNM";
$str .= $rand{mt_rand(0,26)};
}
}
break;
case 3:
for((int)$i = 0;$i <= $length;$i++){
if(mb_strlen($str) == $length){
$str = $str;
}else{
$rand = "123456789qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM";
$str .= $rand{mt_rand(0,35)};
}
}
break;
case 4:
for((int)$i = 0;$i <= $length;$i++){
if(mb_strlen($str) == $length){
$str = $str;
}else{
$rand = "!@#$%^&*()_+=-~`";
$str .= $rand{mt_rand(0,17)};
}
}
break;case5:for((int)$i =0;$i <= $length;$i++){if(mb_strlen($str)== $length){
$str = $str;}else{
$rand ="123456789qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM!@#$%^&*()_+=-~`";
$str .= $rand{mt_rand(0,52)};}}break;}return $str;}
本文出至:新太潮流网络博客
PHP生成随机或者唯一字符串的更多相关文章
- js生成随机固定长度字符串的简便方法
概述 碰到一个需求:用js生成固定长度的字符串.在网上查了很多资料,网上的方法都比较麻烦.我自己灵光一现,实现了一个比较简单的方法.记录下来,供以后开发时参考,相信对其他人也有用. js生成随机字符串 ...
- sql生成随机不重复字符串 可指定长度
存储过程: create procedure dbo.GetRandStr () output) AS BEGIN ), ), @ss varchar DECLARE @I INTEGER, @cou ...
- PHP 生成随机字符串与唯一字符串
说明:生成随机字符串用到的方法有 mt_rand() 生成唯一字符串用到的方法有 md5(),uniqid(),microtime() 代码: <?php /* * 生成随机字符串 * @par ...
- PHP生成随机字符串与唯一字符串
代码如下: <?php /* * 生成随机字符串 * @param int $length 生成随机字符串的长度 * @param string $char 组成随机字符串的字符串 * @ret ...
- python生成随机日期字符串
python生成随机日期字符串 生成随机的日期字符串,用于插入数据库. 通过时间元组设定一个时间段,开始和结尾时间转换成时间戳. 时间戳中随机取一个,再生成时间元组,再把时间元组格式化输出为字符串 # ...
- php生成唯一字符串
$units = array(); //循环生成好多个唯一字符串 for($i=0;$i<1000000;$i++){ $units[]=md5(uniqid(md5(microtime(tru ...
- Java通过UUID随机生成36位、32位唯一识别码(唯一字符串)
import java.util.UUID; /** * 通过UUID随机生成36位.32位唯一识别码(唯一字符串) * @author [J.H] * */ public class Test { ...
- [源码]RandomId 生成随机字符串
/* * 名称:RandomId * 功能:生成随机ID * 作者:冰麟轻武 * 日期:2012年1月31日 03:36:28 * 版本:1.0 * 最后更新:2012年1月31日 03:36:28 ...
- .net生成随机字符串
生成随机字符串的工具类: /// <summary> /// 随机字符串工具类 /// </summary> public class RandomTools { /// &l ...
随机推荐
- Mapreduce部署与第三方依赖包管理
Mapreduce部署是总会涉及到第三方包依赖问题,这些第三方包配置的方式不同,会对mapreduce的部署便捷性有一些影响,有时候还会导致脚本出错.本文介绍几种常用的配置方式: 1. HADOOP_ ...
- 【树】Flatten Binary Tree to Linked List(先序遍历)
题目: Given a binary tree, flatten it to a linked list in-place. For example,Given 1 / \ 2 5 / \ \ 3 4 ...
- numpy.pad
np.pad()常用与深度学习中的数据预处理,可以将numpy数组按指定的方法填充成指定的形状. np.pad() 对一维数组的填充 import numpy as np arr1D = np.arr ...
- 正确的C++/C堆栈
在理解C/C++内存分区时,常会碰到如下术语:数据区,堆,栈,静态存储区,静态区,常量区,常变量区,全局区,字符串常量区,静态常量区,静态变量区,文字常量区,代码区等等,初学者被搞得云里雾里.在这里, ...
- CSS3设置Table奇数行和偶数行样式
table:.myTable tr:nth-child(even){ //偶数行 background:#fff;}.myTable tr:nth-child(odd){ //奇数行 backgrou ...
- EF的小知识
关于EF多表提交保存的问题,同理,修改也适用,用EF不久,总是每张表提交都SaveChanges()一下,后面查看了点资料,其实直接可以add到每张表,直接最后提交就行了,这样操作起来和性能上都要好很 ...
- 【手记】解决启动SQL Server Management Studio 17时报Cannot find one or more components...的问题
刚装好SSMS 17.1准备体验,弹出: 一番搜索,普遍办法都是安装VS2015独立shell.删除某个注册表项什么的,没用,首先这个shell我是装了的,然后也没有那个注册表项.我自己尝试过重装sh ...
- [C语言] 数据结构-算法效率的度量方法-事前分析估算方法
事前分析估算方法:在计算机程序编制前,依据统计方法对算法进行估算,抛开与计算机硬件软件有关的因素,一个程序的运行时间,依赖于算法的,好坏和问题的输入规模,所谓问题输入规模是指输入量的多少 推导过程,比 ...
- Xcode8如何创建Framework静态SDK库
iOS的软件开发工具包SDK,一般是以库的形式出现,从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.开发过程中,我们常常会用到第三方的SDK.尤其是微信.QQ.百度地图.支付功能等.其 ...
- 【转】MyBatis接口的简单实现原理
MyBatis接口的简单实现原理 用过MyBatis3的人可能会觉得为什么MyBatis的Mapper接口没有实现类,但是可以直接用? 那是因为MyBatis使用Java动态代理实现的接口. 这里仅仅 ...