当前位置:编程学堂 > PHP随机数C扩展随机数

PHP随机数C扩展随机数

  • 发布:2023-10-06 12:13

本文将为大家介绍PHP随机数C扩展随机数。有一定的参考价值。有需要的朋友可以参考一下。希望对大家有所帮助。

$str_md5=md5(uniqid()); $rand = mt_rand(1, 28); $str1=substr($str_md5,$rand,6); $rand = mt_rand(1, 28); $str2=substr($str_md5,$rand,6); $rand = mt_rand(1, 28); $str3=substr($str_md5,$rand,6); $code=substr($str1.$str2.$str3,0,8);

登录后复制

PHP_FUNCTION(get_random__num_str) { 整数长度=8; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &length) == 失败) { 长度=8; } 长度++; int 标志,i; 字符*字符串; __uint64_t 时间戳 = 实时(); __uint64_t retval; int 长度; 字符缓冲区[128]; if (时间戳== 0ULL) { 返回假; } spin_lock(锁,pid);if (上下文->last_timestamp == 时间戳) { 上下文->序列 = (上下文->序列 + 1) & 上下文->sequence_mask; if (上下文->序列 == 0) { 时间戳=skip_next_millis(); } } 别的 { 上下文->序列=0; /* 归零 */ } 上下文->last_timestamp = 时间戳; retval = ((时间戳 - 上下文->twepoch) << context->timestamp_left_shift) | (上下文->datacenter_id << context->datacenter_id_shift) | (worker_id << context->worker_id_shift) |上下文->序列; spin_unlock(锁,pid); //printf('%ld',retval); srand((无符号)retval); //srand((无符号)时间(NULL)); if ((字符串 = (char*) emalloc(长度)) == NULL ) { //myLog("Malloc 失败!flag:14\n"); RETURN_NULL() ; } for (i = 0; i < 长度 - 1; i++) { 标志=兰特()%3; 开关(标志) { 案例0: 字符串[i] = '1' + rand() % 5;休息; 情况1: 字符串[i] = '2' + rand() % 7; 休息; 案例2: 字符串[i] = '0' + rand() % 10; 休息; 默认: 字符串[i] = '9'; 休息; } } 字符串[长度 - 1] = '\0'; RETURN_STRINGL(字符串,长度,0); } PHP_FUNCTION(get_random_str) { 整数长度=8; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &length) == 失败) { 长度=8; } 长度++; int 标志,i; 字符*字符串; __uint64_t 时间戳 = 实时(); __uint64_t retval; int 长度; 字符缓冲区[128]; if (时间戳== 0ULL) { 返回假; } spin_lock(锁,pid); if (上下文->last_timestamp == 时间戳) { 上下文->序列 = (上下文->序列 + 1) & 上下文->sequence_mask; if (上下文->序列 == 0) { 时间戳=skip_next_millis(); } } 别的 {上下文->序列=0; /* 归零 */ } 上下文->last_timestamp = 时间戳; retval = ((时间戳 - 上下文->twepoch) << context->timestamp_left_shift) | (上下文->datacenter_id << context->datacenter_id_shift) | (worker_id << context->worker_id_shift) |上下文->序列; spin_unlock(锁,pid); //printf('%ld',retval); srand((无符号)retval); //srand((无符号)时间(NULL)); if ((字符串 = (char*) emalloc(长度)) == NULL ) { //myLog("Malloc 失败!flag:14\n"); RETURN_NULL() ; } for (i = 0; i < 长度 - 1; i++) { 标志=兰特()%3; 开关(标志) { 案例0: 字符串[i] = 'A' + rand() % 26; 休息; 情况1: 字符串[i] = 'a' + rand() % 26; 休息; 案例2: 字符串[i] = '0' + rand() % 10; 休息; 默认: 字符串[i] = 'x'; 休息; } }字符串[长度 - 1] = '\0'; RETURN_STRINGL(字符串,长度,0); }

登录后复制

相关文章

最新资讯