改写php随机数字与字母组合的代码

 <?php  
header("content-type:text/html; charset=utf-8");  
function random($length, $chars = '0123456789') {  
    $hash = '';  
    $max = strlen($chars) - 1;  
    for($i = 0; $i < $length; $i++) {  
        $hash .= $chars[mt_rand(0, $max)];  
    }  
    return $hash;  
}  
$length=isset($_GET['length'])?$_GET['length']:'10';  
echo "".random($length, '123456789abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ')."";

上面是一串字母大小写数字组合的10位随机数
目前是每刷新一次自动随机变化一次
改写方向:需要能写入txt文件,将每刷新一次随机出现一串字符改为每30秒将一串字符并将字符写进txt,同时读取txt显示该字符

生成cookie保存到客户端,有效期30分钟,不可能针对主机的,获取不到mac之类的内容,换个浏览器你就没办法了

除非你针对ip,但是同一个ip下可能有多个主机

用缓存不久可以吗。memcache ,redis都可以,每次访问文件都先读缓存里面的值,缓存有值就返回,没有值就就用你的函数生成一个值,并存入缓存,并设置缓存过期时间未30秒

写个工具类,将随机数修饰为static,再来个时间
获取随机字符串的时候先看有没有值,没有的话记录当前时间
在获取时候看字符串有没有值并且看时间有没有超过30秒,没超过时间返回以前的数据,超过的话创建一个返回当前时间刷新,

linux定时任务 每30S请求一次