可稍微修改为输出js,在网站底部调用显示在线人数!此文件在网站核心文件中引用即可。比如WordPress网站在根目录index.php头部引用即可。
网址后面添加参数 ?type=number 输出json格式的总人数。
网址后面添加参数 ?type=json 输出json格式的在线IP列表和有效时长。
<?php /** * 网站在线人数统计,0文件,0数据库,支持高并发,高效率。 * 网址:www.zidongtouzhu.vip * 转载请注明来源,谢谢。 * 可稍微修改为输出js,在网站底部调用显示在线人数!此文件在网站核心文件中引用即可。比如WordPress网站在根目录index.php头部引用即可。 */ ini_set("display_errors", "Off"); error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING); extension_loaded('memcached') or die('memcached扩展未安装!'); header('Access-Control-Allow-Origin:*'); header('Access-Control-Allow-Methods:GET,POST'); header('Access-Control-Allow-Headers:Origin, X-Requested-With, Content-Type, Accept'); $onlinetime = 600; //在线有效时间(秒) $ip = $_SERVER['HTTP_X_FORWARDED_FOR'] ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']; $mem = new Memcached(); $mem->addServer('127.0.0.1', '11211') or die('memcached连接失败!'); $line_user_list = $mem->get('on_line_user_list'); $line_user_list[$ip] = time(); foreach ($line_user_list as $lineuserip => $linetime) { $outusertime[$lineuserip] = time()-$linetime; if (time()-$linetime >= $onlinetime) { unset($line_user_list[$lineuserip]); } else { $body .= $lineuserip.' => 剩余失效时间: '.($onlinetime-(time()-$linetime)).' 秒</br>'; } } $mem->set('on_line_user_list', $line_user_list, 0); if ($_GET['type'] == 'number') { echo json_encode(['value' => count($line_user_list)]); exit; } if ($_GET['type'] == 'json') { echo json_encode(['line_user_list' => $line_user_list, 'line_out_time' => $outusertime]); exit; } ?> <h1>当前在线人数:<?php echo count($line_user_list); ?> 人</h1>访客刷新页面后重新计时! <h2>在线列表:</h2> <?php echo $body; ?>