isset($linedata[2]) ? $linedata[0] : '(名前なし)', 'date' => isset($linedata[1]) ? $linedata[1] : '0', 'score' => isset($linedata[2]) ? (int)$linedata[2] : (int)$linedata[0], 'time' => isset($linedata[3]) ? $linedata[3] : '(undefined)', 'id' => isset($linedata[4]) ? $linedata[4] : '(no-id)' ); } fclose($prefile); } // id で検索をかけてみる $dataindex = array_search(mb_convert_encoding($_POST['id'], 'UTF-8', 'auto'), array_column($data, 'id')); // まだ、その id が登録されていなければ if ($dataindex === FALSE) { // 送信されてきたデータをランキングの末尾に追加 $data[$i] = array( 'name' => mb_convert_encoding($_POST['name'], 'UTF-8', 'auto'), 'date' => date('YW'), 'score' => (int)$_POST['score'], 'time' => mb_convert_encoding($_POST['time'], 'UTF-8', 'auto'), 'id' => mb_convert_encoding($_POST['id'], 'UTF-8', 'auto') ); // 出来上がったスコアの羅列をスコアに応じてソート usort($data, function ($a, $b) { return $b['score'] - $a['score'] != 0 ? $b['score'] - $a['score'] : ($b['time'] > $a['time'] ? 1 : -1); }); } else { // すでに、id の登録があれば名前だけ更新 $data[$dataindex]['name'] = mb_convert_encoding($_POST['name'], 'UTF-8', 'auto'); } // ランキングの書き込み準備 $writer = fopen($FileName, "w"); // 1位から、20位まで記録 for ($i = 0; $i < 20; $i++) { if (!isset($data[$i])) break; fputs($writer, $data[$i]['name'].','.$data[$i]['date'].','.$data[$i]['score'].','.$data[$i]['time'].','.$data[$i]['id'].",\r\n"); } fclose($writer); } // ファイルの中身を JSON 形式で吐き出します。 // FileName : 中身を吐き出したいファイルの名前 function PrintScore($FileName) { $i = 0; // ランキングを取得 if (file_exists($FileName)) { $prefile = fopen($FileName, "r"); for (; !feof($prefile); $i++) { if (($linedata = fgetcsv($prefile)) === FALSE) break; $data[$i] = array( 'name' => isset($linedata[2]) ? $linedata[0] : '(名前なし)', 'date' => isset($linedata[1]) ? $linedata[1] : '0', 'score' => isset($linedata[2]) ? (int)$linedata[2] : (int)$linedata[0], 'time' => isset($linedata[3]) ? $linedata[3] : '(undefined)', 'id' => isset($linedata[4]) ? $linedata[4] : '(no-id)' ); } fclose($prefile); } print('{"Scores":'.json_encode($data, JSON_UNESCAPED_UNICODE).'}'); } // スコアを送信されたとき、スコアを更新しておく。 if (isset($_POST['score']) && isset($_POST['name']) && isset($_POST['time']) && isset($_POST['id'])) { UpdateScores("./weekscore.txt"); UpdateScores("./score.txt"); PrintScore("./score.txt"); die(200); } // スコアだけを要求されたら、スコアを吐き出す。 if (isset($_GET['getscoreonly']) || isset($_POST['getscoreonly'])) { PrintScore("./score.txt"); die(200); } // スコアのリセット要求があれば、スコアをリセット if (isset($_GET['reset'])) { if (isset($_GET['USER'], $_GET['PW']) && password_verify($_GET['USER'], '$2y$10$m3ps2WdNMrzfRrV/88MrqenbJqjbIYrvtbhD.242WXonq9xfTEDZK') && password_verify($_GET['PW'], '$2y$10$1aZfnA6rL6iNQ6Q2FcrFf.nzijyY59iuP454EZ2LzpSa2MrWBY.xS')) { $resetfile = fopen("./score.txt", "w"); fclose($resetfile); $resetfile = fopen("./weekscore.txt", "w"); fclose($resetfile); $resetfile = fopen("./lastweekscore.txt", "w"); fclose($resetfile); } else { print('リセット要求は拒否されました。'); } } // ファイルの削除要求があれば削除 if (isset($_GET['del'])) { if (isset($_GET['USER'], $_GET['PW']) && password_verify($_GET['USER'], '$2y$10$m3ps2WdNMrzfRrV/88MrqenbJqjbIYrvtbhD.242WXonq9xfTEDZK') && password_verify($_GET['PW'], '$2y$10$1aZfnA6rL6iNQ6Q2FcrFf.nzijyY59iuP454EZ2LzpSa2MrWBY.xS')) { unlink("./score.txt"); unlink("./weekscore.txt"); unlink("./lastweekscore.txt"); print('ファイルを削除しました。'); die(200); } else { print('削除要求は拒否されました。'); } } ?> 追い出し2017 スコア表示

追い出し2017
スコアランキング




".$Title."\n\n\t\n"); if (file_exists($FileName)) { $file = fopen($FileName, "r"); for ($j = 0; !feof($file) && $j < 20; $j++) { if (($fileline = fgetcsv($file)) === FALSE) break; print("\t\t\n"); print("\t\t\t\n"); print("\t\t\t\n"); if (isset($fileline[2])) print("\t\t\t\n"); else print("\t\t\t\n"); print("\t\t\n"); } fclose($file); } print("\t
".($j + 1)."位".$fileline[0]."".$fileline[2]."
\n"); } ShowScores("./weekscore.txt", "週間ランキング"); print("
\n
\n"); ShowScores("./lastweekscore.txt", "先週の週間ランキング"); print("
\n
\n"); ShowScores("./score.txt", "総合ランキング"); ?>


(C) 2017 Qpic