1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- <?php
- namespace loyalsoft;
- # 导入主代码库
- include_once __DIR__ . '/../../main.php';
- # 设置时区为中国区(东8区)
- date_default_timezone_set("PRC");
- set_time_limit(0); # cli 不限定执行时间
- /**
- * Description of analysis
- * @version
- * 1.0.0 Created at 2018-1-22. by --gwang
- * @author gwang (mail@wanggangzero.cn)
- * @copyright ? 2018-1-22, SJZ LoyalSoft Corporation & gwang. All rights reserved.
- */
- class analysis {
- public static function exec($uid) {
- $user = UserProc::getUserInfo(gMem(), 1, $uid);
- // var_dump($user);
- $ts = $user->game->baseInfo->lastSaveTs - $user->game->baseInfo->firstLogin;
- // var_dump($user);
- $str_len = '1分钟';
- if ($ts < 60) {
- $str_len = '1分钟以内';
- } else if ($ts < 300) {
- $str_len = '5分钟以内';
- } else if ($ts < 600) {
- $str_len = '10分钟以内';
- } else if ($ts < 1800) {
- $str_len = '30分钟以内';
- } else {
- $str_len = '30分钟以上';
- }
- gMem()->zincrby('staytime', $str_len, 1);
- // 接下来分析每个玩家数据中的具体数据, 比如有几个英雄
- // $hn = count((array) $user->game->heros->collectHeros);
- // gMem()->zincrby('英雄数量', $hn, 1);
- //
- // 比如, 第一次登陆时间和最后一次写入时间之间的差值(留存时长)
- // 最后一次操作玩家数据上没法估计
- // 统计下历史消耗金币数量, 历史 消耗钻石数量, ...
- // 钻石和金币的流向...
- }
- }
- $lines = file('dd.csv');
- // 在数组中循环,显示 HTML 的源文件并加上行号。
- $n = 0;
- foreach ($lines as $line_num => $line) {
- $uid = trim($line);
- $uid = ltrim(trim($uid, "\""), "\"");
- // var_dump(ltrim(trim($uid, "\""), "\""));
- // gMem()->zincrby('staytime', 'len', 1);
- analysis::exec($uid);
- $n++;
- if ($n % 500 == 0) {
- echo $n . PHP_EOL;
- }
- // break;
- }
- echo $n;
|