Скрипт для вывода Top Players на Php, Парсер игроков с сайта GameTracker.Com |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
|
Скрипт для вывода Top Players на Php, Парсер игроков с сайта GameTracker.Com |
Lavrik
|
15.5.2008, 2:49
Сообщение
|
![]() |
Скрипт для вывода TOP players
Данные берутся с сайта GameTracker.Com Для того чтоб скрипт нормально работал надо зарегистрировать свой сервер на GameTracker.Com Код <?php /* Парсер для GameTracker.Com */ /* Copyrights (c) 2008 lvr (c-s.net.ua) */ /* @Release date: Sun, 07 Sep 2008 00:49:35 +0300 */ /* release id: b8539dbc1abdc67b0b433ad8e0ef93b4 */ #cron.php | для запуска используйте команду "curl -s -o /dev/null http://siteurl/cronpath/cron.php?c=ваш_секретный_код" # или просто "curl -s -o /dev/null http://siteurl/cronpath/cron.php" #Для устранения нежелательных запусков используйте код ниже: /* $secretcode = 'k24aOwndxzX'; // Ваш секретный код if(!isset($_GET['c']) || $_GET['c'] != $secretcode) { die(); } */ /* Сервер IP:PORT */ $server = array('ip' => '8.12.20.203', 'port' => '7777'); /* Сколько игроков выводить в TOP? */ $limit = 30; /* Для записи в файл укажите имя файла */ $in_file = "text.html"; /* Конфиг для MySql */ $in_db = FALSE; $db = array( 'host' => 'DB_HOST', 'name' => 'DB_NAME', 'user' => 'DB_USER', 'passwd' => 'DB_PASSWORD' ); $print_players_array = FALSE; // Вывести в конце выполнения скрипта список игроков? /* -- -- Структура таблицы top_cache -- CREATE TABLE top_cache ( rank SMALLINT( 3 ) NOT NULL , name VARCHAR( 50 ) NOT NULL , score INT( 15 ) NOT NULL , time VARCHAR( 30 ) NOT NULL, ratio varchar(7) NOT NULL ) ENGINE = MYISAM */ $pages = 1; $_limit = $limit; while($_limit >= 25) { $pages++; $_limit -= 25; } $url = "http://www.gametracker.com/server_info/{$server['ip']}:{$server['port']}/top_players/?page="; $mega_content = ''; for($i = 1; $i <= $pages; $i++) { $content = file_get_contents($url.$i); $content = preg_replace('/<(.*?)>/ie', '', $content); $content = str_replace("\t", '', $content); $content = str_replace("\r", "\n", $content); $content = preg_replace("/[\n]+/", "\n", $content); $position = strpos($content, 'Score/Min'); $content = substr($content, $position + 9, strlen($content)); $position = strpos($content, "Rank\nName\nScore\nTime Played"); $content = substr($content, 1, $position - 1); $mega_content .= $content; } $data = explode("\n", $mega_content); $players = array(); for($i = 0, $k = 0; $k < count($data), $i<$limit; $i++) { $players[$i]['rank'] = substr($data[$k++], 0, -1); $players[$i]['name'] = htmlspecialchars($data[$k++]); $players[$i]['score'] = $data[$k++]; $players[$i]['time'] = $data[$k++]; $players[$i]['ratio'] = $data[$k++]; } // Генерируем HTML страницу if($in_file) { $players_html = fopen($in_file, 'w'); if(is_writeable($in_file)) { $html = '<table border="1"><tr><td>Rank</td><td>Name</td><td>Score</td><td>Time Played</td><td>Score/Min</td></tr>'; for($i = 0; $i < count($players); $i++) { $html .= '<tr>'; $html .= "<td>{$players[$i]['rank']}</td>"; $html .= "<td>{$players[$i]['name']}</td>"; $html .= "<td>{$players[$i]['score']}</td>"; $html .= "<td>{$players[$i]['time']}</td>"; $html .= "<td>{$players[$i]['ratio']}</td>"; $html .= '</tr>'; } $html .= '</table><br />Last update at <b>' . date('r') . '</b>'; fwrite($players_html, $html); } else { echo date('r')." >> Невозможно записать файл\n"; } fclose($players_html); } if($in_db) { $mysql_dbconnect = mysql_connect($db['host'], $db['user'], $db['passwd']) or die (date('r').' >> Not connected: ' . mysql_error() . "\n"); mysql_select_db($db['name']) or die (date('r').' >> Can\'t select db: ' . mysql_error() . "\n"); mysql_query('DELETE FROM top_cache WHERE 1'); for($i = 0; $i < count($players); $i++) { $players[$i]['name'] = mysql_escape_string($players[$i]['name']); mysql_query("INSERT INTO top_cache VALUES ('{$players[$i]['rank']}', '{$players[$i]['name']}', '{$players[$i]['score']}', '{$players[$i]['time']}', '{$players[$i]['ratio']}')") or die (date('r').' >> Invalid query: ' . mysql_error() . "\n"); } mysql_close($mysql_dbconnect); } if($print_players_array) { echo '<pre>'; print_r($players); echo '</pre>'; } # copyrights (c) c-s.net.ua ?> Маленькое FAQ: 1. Что за нах - "для запуска используйте команду" ? Читаем: http://ru.wikipedia.org/wiki/Crontab. 2. У меня хостинг что делать? Задания crontab доступны на большинстве хостингов. 3. Как можно запустить скрипт еще? В IPB доступно добавление cron заданий поищите на форуме http://ibresource.ru/ как добавлять новые задания. В Windows есть служба "Назначенные задания". Для запуска используйте путь_к_интерпритатору_php/php.exe путь_к_скрипту/cron.php 4. Как часто запускать cron.php? Раз в час думаю, хватит. Можно и меньше. 5. Как мне вывести данные с БД Поддержка вывода серверов с БД увы отсутствует 6. Где находится стуктура таблицы Найдите в скрипте строчку: Код -- Структура таблицы `top_cache` -- Вот после нее идет код структуры таблицы. Скопируйте и вставьте его в phpMyAdmin. 7. Можно ли указать полный путь к файлу HTML? Да, можно, например: 'c:/www/top100.html' 8. У меня неработает скрипт!!! Если честно мне по*** работает он или нет, я его тестировал и все у меня работало. Если у вас руки ростут из жопы, то я готов вам его установить за символическую плату в размере 1WMZ. |
Поблагодарили 3 раз
|
|
Tolstiu
|
15.5.2008, 12:05
Сообщение
|
![]() |
Скринок бы!
|
|
|
|
Lavrik
|
15.5.2008, 13:31
Сообщение
|
![]() |
В смысле? :))
|
|
|
|
Tolstiu
|
15.5.2008, 13:37
Сообщение
|
![]() |
Сделай скрин рабочего) Чтоб знать ради чего ставить)
|
|
|
|
Lavrik
|
15.5.2008, 14:11
Сообщение
|
![]() |
Это скрипт пишет игроков или в файл или в БД. Я оформление ему неделал
|
|
|
|
Lavrik
|
15.5.2008, 15:53
Сообщение
|
![]() |
Записал на видео небольшой мануал(3 мин 22 сек) - http://lavrik.org/files/manual_video.avi ~10mb
|
|
|
|
Stalin_alex
|
23.5.2008, 22:54
Сообщение
|
|
|
Записал на видео небольшой мануал(3 мин 22 сек) - http://lavrik.org/files/manual_video.avi ~10mb ну а как быть локальщикам? )) Я локальный портал держу! )) :) |
|
|
|
dotsenko
|
28.7.2008, 11:35
Сообщение
|
|
|
Скрипт не работает,делал все по инструкции
|
|
|
|
dotsenko
|
28.7.2008, 12:41
Сообщение
|
|
|
195.24.71.127:27027 для Lavrik
|
|
|
|
Tolstiu
|
29.7.2008, 3:04
Сообщение
|
![]() |
Ну на видео все ясно и понятно)))
Шас будем пробовать, как сделаю отпишусь
Отредактировал: Tolstiu, - 29.7.2008, 3:05
|
Поблагодарили 1 раз
|
|
dotsenko
|
29.7.2008, 19:14
Сообщение
|
|
|
как прошли испытания?
странно у меня все равно не грабит |
|
|
|
Lavrik
|
4.8.2008, 11:42
Сообщение
|
![]() |
ждите обновления :)
|
|
|
|
Tolstiu
|
6.8.2008, 20:21
Сообщение
|
![]() |
Был занет, да вроде нормально)
|
|
|
|
Lavrik
|
7.9.2008, 0:39
Сообщение
|
![]() |
fixed
|
|
|
|
dotsenko
|
11.9.2008, 17:00
Сообщение
|
|
|
кстати $secretcode,не помогает можно и с ним просто cron.php обновить )
|
|
|
|
![]() ![]() |