逻辑自己摸索出来的,获取用户IP。再利用cookie把ip地址和当前时间保存,ip保存当前IP保存时间为永久,如果换都换电脑,将会重新保存,iptime保存当前访问时间为一天有效期,第一次初始化添加1个访问量,成功将保存rqz的cookie值为1,下面再进行判断当前时间大于cookie保存的时间加一天的时间就进行清除cookie,这样就不会造成刷访问量,如果说刷新一次清除一次浏览器cookie,那你很牛皮;
use Cookie; public function detail() { $ip = getip(); Cookie::forever('ip',$ip); if (empty(cookie('iptime'))) { Cookie::set('iptime',date('Y-m-d H:i:s'),86400); } if (empty(cookie('rqz'))) { $res = Db::table('talk')->where('id', $id)->setInc('rq'); if ($res) { Cookie::forever('rqz',1); } } if ($ip == cookie('ip')) { if (cookie('rqz') == 1) { if (strtotime(date('Y-m-d H:i:s')) > strtotime(date('Y-m-d H:i:s',strtotime("+1 day",strtotime(cookie('iptime')))))) { Cookie::delete('rqz'); Cookie::delete('iptime'); } } } } function getip() { if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip = $_SERVER['REMOTE_ADDR']; } return $ip; } function renum($array, $get) { $n = 0; foreach ($array as $val) { if ($val == $get) { $n++; } } return $n; }