Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Скрипт обработки .ltx файлов . Как создать статистику к серверу ? 
:(
    Опции темы
PAHA81
Дата 13.3.2011, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 13.3.2011

Репутация: нет
Всего: нет



Здрасьте всем .

У меня такой вопрос . 

Есть игровой сервер , он генерирует файлы статистики в текстовые файлы  в формате .ltx  в зависимости от заданного серверу интервала , от 1 минуты до 60 . они имеют такой вид : 

Код

[global]
        anomalies                        = true
        artefacts_limit                  = 25
        best_killer                      = Иmmигранд
        current_map_name                 = "Лаборатория X-10"
        fraglimit                        = 0
        game_mode                        = artefacthunt
        in_warmup                        = false
        online_time_sec                  = 25920
        players_total_cnt                = 10
        round_time_sec                   = 3195
        team_0_score                     = 10
        team_1_score                     = 12
        timelimit_mins                   = 180
 
[map_rotation]
        0                                = "Лаборатория X-10"
        1                                = "Припять"
        10                               = "Завод "Янтарь""
        11                               = "Покинутая деревня"
        12                               = "Военные склады"
        13                               = "mp_military_2"
        14                               = "Ж/Д станция"
        15                               = "Завод "Росток""
        16                               = "Брошенная фабрика"
        17                               = "Кордон"
        18                               = "Свалка"
        19                               = "НИИ Агропром"
        2                                = "ЧАЭС"
        20                               = "Темная Долина"
        21                               = "Бар"
        22                               = "Дикая территория"
        23                               = "Армейские склады"
        24                               = "Янтарь"
        25                               = "Радар"
        3                                = "Саркофаг"
        4                                = "Управление Монолитом"
        5                                = "testers_mp_bath"
        6                                = "Завод "Агропром""
        7                                = "АТП"
        8                                = "testers_mp_bath"
        9                                = "Темная долина"
 
[player_1]
        artefacts                        = 0
        deaths                           = 14
        kills_in_row                     = 3
        kills_rival                      = 10
        kills_self                       = 1
        money                            = 8720
        online_time_sec                  = 2318
        ping                             = 13
        player_ip                        = 62.78.44.229
        player_name                      = petrovdanil
        player_team                      = 2
        rank                             = 2
        team_kills                       = 1
 
[player_2]
        artefacts                        = 1
        deaths                           = 12
        kills_in_row                     = 1
        kills_rival                      = 2
        kills_self                       = 2
        money                            = 3295
        online_time_sec                  = 2046
        ping                             = 65
        player_ip                        = 178.44.217.88
        player_name                      = stalker_1
        player_team                      = 2
        rank                             = 2
        team_kills                       = 3
 
[player_3]
        artefacts                        = 0
        deaths                           = 4
        kills_in_row                     = 10
        kills_rival                      = 21
        kills_self                       = 0
        money                            = 28015
        online_time_sec                  = 1918
        ping                             = 55
        player_ip                        = 217.65.223.95
        player_name                      = Иmmигранд
        player_team                      = 1
        rank                             = 3
        team_kills                       = 1
 
[player_4]
        artefacts                        = 3
        deaths                           = 12
        kills_in_row                     = 3
        kills_rival                      = 15
        kills_self                       = 1
        money                            = 16340
        online_time_sec                  = 3195
        ping                             = 42
        player_ip                        = 94.181.173.234
        player_name                      = sanek®©™
        player_team                      = 1
        rank                             = 3
        team_kills                       = 0
 
[player_5]
        artefacts                        = 2
        deaths                           = 3
        kills_in_row                     = 1
        kills_rival                      = 2
        kills_self                       = 0
        money                            = 2350
        online_time_sec                  = 974
        ping                             = 30
        player_ip                        = 79.173.80.63
        player_name                      = bogd@n87
        player_team                      = 1
        rank                             = 2
        team_kills                       = 0
 
[player_6]
        artefacts                        = 2
        deaths                           = 2
        kills_in_row                     = 0
        kills_rival                      = 0
        kills_self                       = 0
        money                            = 10085
        online_time_sec                  = 957
        ping                             = 23
        player_ip                        = 93.80.172.123
        player_name                      = barakuda
        player_team                      = 1
        rank                             = 1
        team_kills                       = 0
 
[player_7]
        artefacts                        = 0
        deaths                           = 4
        kills_in_row                     = 0
        kills_rival                      = 0
        kills_self                       = 1
        money                            = 3930
        online_time_sec                  = 511
        ping                             = 102
        player_ip                        = 178.125.132.189
        player_name                      = norma
        player_team                      = 2
        rank                             = 0
        team_kills                       = 0
 
[player_8]
        artefacts                        = 0
        deaths                           = 2
        kills_in_row                     = 0
        kills_rival                      = 0
        kills_self                       = 0
        money                            = 1530
        online_time_sec                  = 504
        ping                             = 46
        player_ip                        = 178.141.18.134
        player_name                      = federal
        player_team                      = 2
        rank                             = 0
        team_kills                       = 0
 
[player_9]
        artefacts                        = 0
        deaths                           = 0
        kills_in_row                     = 0
        kills_rival                      = 0
        kills_self                       = 0
        money                            = 4400
        online_time_sec                  = 82
        ping                             = 77
        player_ip                        = 78.45.1.47
        player_name                      = deti
        player_team                      = 2
        rank                             = 0
        team_kills                       = 0
 



файлы имеют название : 

dmp02-14-11_20-57-33.ltx
dmp02-14-11_21-00-33.ltx
dmp02-14-11_21-03-33.ltx
...
и так далее , у меня в настройках время сохранения три минуты .

хочу сделать из всего этого статистику , что бы всё это  можно было встроить фреймом потом на сайт ,  как здесь http://9m-team.ru/stat_vovan_artkill_9m.html . ( http://mosinter.9m-team.ru/show.html?servi...er=1&mode=0 )

Нужно сделать скрипт , который будет обрабатывать файлы по мере их поступления и экспотировать все данные из них в базу данных , затем удалять их .  И потом что бы таблицу уже можно было вывести на сайт  ( как я показал в примере выше)

Спасибо .


PM MAIL   Вверх
NewDima
Дата 13.3.2011, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: 10
Всего: 12



Хорошо, что не поулчается?
PM ICQ   Вверх
Muerto
Дата 13.3.2011, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Судя по файлу стандартный Ini, парси ini парсером http://php.net/manual/en/function.parse-ini-file.php


--------------------
user posted image
PM MAIL   Вверх
PAHA81
Дата 17.3.2011, 11:46 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 13.3.2011

Репутация: нет
Всего: нет



Я не программист , искал в интернете множество уроков , факов , форумов по PHP и SQL . Обычно пишут как вывести текст , или обработать строки в PHP , но того что мне нужно не нашел .  Предлагаю здесь написать своеобразный мануал , тем людям кто в этом разбирается .

Меня интересует : 

1. Открыть файл .ltx  (имя файла постоянно разное , как я писал выше) 
2. Считать из него информацию  ( по секциям ) 
3. Записать все эти данные в БД .
4. Удалить файл после успешной обработки . 
5. Вывести информацию которая сохраняется в БД и вставить фреймом на сайт . 

Вот как то так . 
Спасибо .


Muerto,  да , очень похоже на .ini , такие же секции .  но форум на инглише , не совсем понятно что там и для чего . 

Нельзя ли по русски и как можно подробней ? 
PM MAIL   Вверх
Muerto
Дата 17.3.2011, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



PAHA81, Есть и на русском инфа 
http://www.php.ru/manual/function.parse-ini-file.html

Есть так же готовые примеры 
http://www.phpclasses.org/package/2833-PHP...tion-files.html
Сам вроде парсер на основе этого класса делал, чет оч похоже на то что у меня

Пользуются этим вот так

Код

<?php
include("class.iniparser.php");

$cfg = new iniParser("config.ini");

$name = $cfg->get("Owner","firstname")." ".$cfg->get("Owner","lastname");
echo $name;

$tool = $cfg->get("Tool");
print_r($tool);


?>


За место вывода на экран можно записывать в базу


Удаление делается командой unlink


--------------------
user posted image
PM MAIL   Вверх
PAHA81
Дата 18.3.2011, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 13.3.2011

Репутация: нет
Всего: нет



Ок , е есть ли скрипт обработки текста , что бы удалял все ненужные строки ? 

Код

* client : connection accepted - <All Ok>
* phase time: 4200 ms
* phase cmem: 96828 K
Открытие потока...
* phase time: 8 ms
* phase cmem: 96828 K
Загрузка формы объектов...
* phase time: 2278 ms
* phase cmem: 141746 K
Загрузка шейдеров...
* phase time: 14 ms
* phase cmem: 142600 K
Загрузка секторов и порталов...
* Loading HOM: f:\Игры\s.t.a.l.k.e.r\shadow\gamedata\levels\l05_bar\level.hom
* phase time: 27 ms
* phase cmem: 142813 K
Загрузка ИИ объектов...
* phase time: 2 ms
* phase cmem: 142813 K
Клиент: Создание...
* connection sync: 0 ms
- Game configuring : Started 
- Game configuring : Finished 
* phase time: 13 ms
* phase cmem: 142813 K
Клиент: Синхронизация...
* stalker respawned as spectator
* phase time: 2 ms
* phase cmem: 142813 K
* [win32]: free[1827044 K], reserved[62200 K], committed[207844 K]
* [ D3D ]: textures[0 K]
* [x-ray]: crt heap[142813 K], process heap[8513 K], game lua[0 K], engine lua[154 K], render[0 K]
* [x-ray]: economy: strings[779 K], smem[27638 K]
Executing config-script "all_server_settings"...
! Unknown command:  #chat
[f:\Игры\s.t.a.l.k.e.r\shadow\stalker-shoc\all_server_settings.ltx] successfully loaded.
stalker connected
stalker присоединился к Свобода
* stalker respawned as spectator
cl setDestroy [7169][197247]
cl setDestroy [7168][197247]
cl setDestroy [7180][197247]
cl setDestroy [7181][197247]
cl setDestroy [7182][197247]
cl setDestroy [7183][197247]
cl setDestroy [7184][197247]
sv destroy object [7458][spectator:Каша] [197247]
* Skin - actors\stalker_mp\stalker_killer_antigas.ogf
* Каша respawned as actor
item not found in registry [mp_players_rukzak]
sv destroy object [7459][spectator:guron] [197247]
* Skin - actors\stalker_mp\stalker_killer_mask.ogf
* guron respawned as actor
item not found in registry [mp_players_rukzak]
sv destroy object [7460][spectator:takcuct] [197247]
~ Чат: ctrl : sor 15 sek
* Skin - actors\stalker_mp\stalker_sv_rukzak_2.ogf
* takcuct respawned as actor
item not found in registry [mp_players_rukzak]
sv destroy object [7461][spectator:*gvz*ozornik] [197247]
* Skin - actors\stalker_mp\stalker_killer_mask_de.ogf
* *gvz*ozornik respawned as actor
item not found in registry [mp_players_rukzak]
sv destroy object [7462][spectator:!!!torres!!!] [197247]
* Skin - actors\stalker_mp\stalker_killer_mask_uk.ogf
* !!!torres!!! respawned as actor
item not found in registry [mp_players_rukzak]
cl setDestroy [7458][197248]
cl setDestroy [7459][197248]
cl setDestroy [7460][197248]
cl setDestroy [7461][197248]
cl setDestroy [7462][197248]
~ Чат: ПСИХ : 1 za menya
item not found in registry [mp_players_rukzak]
# Player not found. New player created.
xrGS::CDKey::Server : Respond accepted, Authenticate client.
xrGS::CDKey: Validation successful - <Validated>
item not found in registry [mp_players_rukzak]
item not found in registry [mp_players_rukzak]
sv destroy object [7710][mp_wpn_ak74:] [198015]
sv reject. id_parent [7704][mp_actor:!!!torres!!!] id_entity [7710][mp_wpn_ak74:] [198015]
cl setDestroy [7710][198016]
item not found in registry [mp_players_rukzak]
---select artefact RPoint [0]
~ Чат: axxxl.. : suka pinger
- Чат: takcuct : sste
xrGS::CDKey::Server : Disconnecting Client
takcuct disconnected
takcuct killed himself
sv reject. id_parent [7692][mp_actor:takcuct] id_entity [7695][mp_wpn_pb:] [200386]
sv reject. id_parent [7692][mp_actor:takcuct] id_entity [7693][mp_players_rukzak:] [200386]
--NeedToDestroyObject for [7692][200785]
sv destroy object [7692][mp_actor:takcuct] [200785]
sv destroy object [7694][mp_wpn_knife:] [200785]
sv reject. id_parent [7692][mp_actor:takcuct] id_entity [7694][mp_wpn_knife:] [200785]
cl setDestroy [7694][200785]
cl setDestroy [7692][200785]
- Чат: prigorashnya : hi vcem
item not found in registry [mp_players_rukzak]
sv destroy object [7690][mp_ammo_9x18_fmj:] [200812]
sv reject. id_parent [7686][mp_actor:guron] id_entity [7690][mp_ammo_9x18_fmj:] [200812]
sv destroy object [7691][mp_ammo_9x18_fmj:] [200812]
sv reject. id_parent [7686][mp_actor:guron] id_entity [7691][mp_ammo_9x18_fmj:] [200812]
sv destroy object [7689][mp_wpn_pm:] [200812]
sv reject. id_parent [7686][mp_actor:guron] id_entity [7689][mp_wpn_pm:] [200812]
cl setDestroy [7690][200813]
cl setDestroy [7691][200813]
cl setDestroy [7689][200813]
sv reject. id_parent [7698][mp_actor:*gvz*ozornik] id_entity [7715][mp_ammo_5.56x45_ap:] [201213]
sv destroy object [7715][mp_ammo_5.56x45_ap:] [201213]
cl setDestroy [7715][201214]
~ Чат: axxxl.. : agagaga
* sefsefsefsgdfc respawned as spectator
sefsefsefsgdfc connected
sefsefsefsgdfc присоединился к Свобода
* [7704] killed by [7698] - sended by [stalker:7457]
* [7704] is [mp_actor:!!!torres!!!]
* [7698] is [mp_actor:*gvz*ozornik]
*gvz*ozornik killed !!!torres!!! от ИЛ86в голову!!!
sv reject. id_parent [7704][mp_actor:!!!torres!!!] id_entity [7936][mp_wpn_ak74:] [201780]
sv reject. id_parent [7704][mp_actor:!!!torres!!!] id_entity [7705][mp_players_rukzak:] [201780]
* Skin - actors\stalker_mp\stalker_killer_mask_uk.ogf
* !!!torres!!! respawned as actor
item not found in registry [mp_players_rukzak]
BattlEye Server: Failed to resolve BE Master 'stalkersoc1.battleye.com'
BattlEye Server: Update attempt failed


Кроме переговоров , обозначенные словом "чат" , символ перед обозначением обозначает команду , "~" наёмники (синие) , "-" свобода (зелёные) .
И загруженную карту указанную в строке "* Loading HOM: f:\Игры\s.t.a.l.k.e.r\shadow\gamedata\levels\l05_bar\level.hom"

Вобщем что бы было так :

Карта Бар 
Переговоры : 

ctrl : sor 15 sek
ПСИХ : 1 za menya
axxxl.. : suka pinger
 takcuct : sste
prigorashnya : hi vcem
axxxl.. : agagaga


Это сообщение отредактировал(а) PAHA81 - 18.3.2011, 16:56
PM MAIL   Вверх
Muerto
Дата 18.3.2011, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



PAHA81, regular expression = регулярные выражения

http://phpclub.ru/detail/article/regexp_1
http://phpclub.ru/detail/article/regexp_2

~ Чат: ПСИХ : 1 za menya

значит структура которая нужна:

~ Чат: NAME : MESSAGE

составляем регулярку...

В начале будет ~ Чат: до след : NAME и после : сообщение...

Возможно Регулярка такая поможет: играйся тести...

/^~ Чат: ([^:.]+) : (.*)/i




Это сообщение отредактировал(а) Muerto - 18.3.2011, 18:50


--------------------
user posted image
PM MAIL   Вверх
PAHA81
Дата 11.7.2011, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 13.3.2011

Репутация: нет
Всего: нет



Muerto,  спасибо , буду изучать . Жаль в последнее время совсем времени нет =( 

А то что я писал в первом посте  можно тоже как то обрабатывать с помощью регулярных выражений ? 
PM MAIL   Вверх
SneG0K
Дата 12.7.2011, 02:16 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(PAHA81 @  17.3.2011,  10:46 Найти цитируемый пост)
Я не программист

Дяденька, вам на фриланс надо.
PM WWW Skype   Вверх
Absinthe
Дата 12.7.2011, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 4.5.2011

Репутация: 5
Всего: 11



Цитата

Предлагаю здесь написать своеобразный мануал , тем людям кто в этом разбирается .
 Мануал по чтению учебника по программированию?
Да ты напрочь убился?

Цитата

А то что я писал в первом посте  можно тоже как то обрабатывать с помощью регулярных выражений ? 
 Тебе надо заплатить баксов 30 кому-то на фрилансе, задача на 2 часа.
Изучать то, что понадобится 1 раз - не эффективно, а с таким подходом многого ты не добьешься.

Это сообщение отредактировал(а) Absinthe - 12.7.2011, 09:45
PM MAIL   Вверх
PAHA81
Дата 13.11.2011, 01:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 13.3.2011

Репутация: нет
Всего: нет



На фриланс так на фриланс.

Кто сделает ?
PM MAIL   Вверх
PAHA81
Дата 13.11.2011, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 13.3.2011

Репутация: нет
Всего: нет



Не могу во фриланс авторизоваться , пишет вот такую хрень:


Логин или пароль введен неверно
PM MAIL   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0561 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.