# xukey **Repository Path**: xavier007/xukey ## Basic Information - **Project Name**: xukey - **Description**: PHP高质量随机字符串,随机数。基于ukey开发,增加了随机字符串,可以产生字母加数字的随机字符串,也可以生成只有数字的随机字符串,可以设定字符串长度。 - **Primary Language**: C - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 11 - **Forks**: 3 - **Created**: 2016-05-04 - **Last Updated**: 2022-06-16 ## Categories & Tags **Categories**: utils **Tags**: None ## README xukey base on ukey 支持PHP7 请选择PHP7分支,修复内存泄露的bug ==== Based on the Twitter Snowflake algorithm

PHP unique ID generator

functions list:
* 1) string ukey_next_id(void);
   Get the next unique ID.
* 2) int ukey_to_timestamp(string ID);
   Change unique ID to timestamp.
* 3) array ukey_to_machine(string ID);
   Change unique ID to machine info.

example:


<?php
$id = ukey_next_id();
echo $id;

$timestamp = ukey_to_timestamp($id);
echo date('Y-m-d H:i:s', $timestamp);
?>

install:


$  cd ./ukey
$  phpize
$  ./configure
$  make
$  sudo make install

php.ini configure entries:


[ukey]
ukey.datacenter = integer
ukey.twepoch = uint64

get_random_str



<?php
$id = get_random_str(6);
echo $id;

?>

get_random__num_str


<?php
$id = get_random__num_str(6);//only number .
echo $id;

?>

Xukey基于ukey

ukey可以看这里https://github.com/liexusong/ukey#ukey

Xukey新增了get_random_str和get_random__num_str两个函数

get_random_str可以返回一个随机的字符串,输入参数为字符串的长度

get_random__num_str可以返回一个随机的纯数字字符串,输入参数为字符串的长度

Xukey可以产生高质量的随机字符串且执行速度非常快

xukey在阿里云1G内存双核CPU服务器上面,可以1秒可以产生18W6位随机字符串,通常只有5,6个重复的字符串。具体大家可以测试一下。字符串长度越长的话,当然重复概率就越低。设置为20位的字符串,随机生成1000W次,测试了几次。没有重复的。当然理论上还是会存在重复的。只是概率比较低。我数学不好,也就不算重复出现的概率了

红薯会不会收我版权费用啊 ![输入图片说明](http://git.oschina.net/uploads/images/2016/0513/111511_a467361f_2158.jpeg "在这里输入图片标题") 感谢: 红薯, BEAUTY