标签 str 下的文章

生成唯一id算法Snowflake的php版本

生成唯一id,常见的函数uniqid()能保证唯一性不重复,但是它里面含有字母,所以搜索之后发现使用Snowflake算法是比较好的,不过只个算法也会产生重复,至少测试了网友写的php版本都会,所以自己进行改进,保证每秒能产生1万个不重复数据,十万会有五六个,如果加上用户id就能保证不会有重复数据,一般情况下1秒不可能写入这么多条数据,所以根据实际情况选择加入或不加入用户id;

function sn(){
 $time = floor(microtime(true) * 1000);
$base = decbin($time);
$machineid = str_pad(decbin(mt_rand(0, 1023)), 10, "0", STR_PAD_LEFT);
$random = str_pad(decbin(mt_rand(0, 4095)), 12, "0", STR_PAD_LEFT);
$str = $base.$machineid.$random;
return number_format(bindec($str),0,"","");
}

这个函数生成16位的全数字id;可用于一般生成订单,生成文件名,图片名,地址规则,中奖码等,当然对于文件名,图片名可以有字母的推荐uniqid()函数,内置函数速度更快,对于纯数字的可以选用此函数.


扫码二维码阅读

php自定义函数讲解之去除文章内空格换行

知识点

php中默认去除函数为trim,但是只能去除开头末尾空格,对于换行,内容中空格去无能为力,此时就要自定义函数来解决;

用途

去除空格有什么用呢?比如,微信中分享的描述,就需要去除内容中空格,换行等特殊字符,否则是不能分享的;

函数

function trimx($str) 
{ 
$str = trim($str);
$str = preg_replace("/\t/","",$str);
$str = preg_replace("/\r\n/","",$str); 
$str = preg_replace("/\r/","",$str); 
$str = preg_replace("/\n/","",$str); 
$str = preg_replace("/ /","",$str);
return trim($str);
}

说明

本函数功能就是去除换行,空格,跳格等


扫码二维码阅读