PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 9
Sanchis Отправлено: 29 Мая, 2013 - 13:40:41 • Тема: лишний перевод строки • Форум: Вопросы новичков

Ответов: 3
Просмотров: 221
\n\r убрать попробуй
Sanchis Отправлено: 29 Мая, 2013 - 12:57:19 • Тема: как взять информацию из аудио файла при передаче через форму? • Форум: Вопросы новичков

Ответов: 4
Просмотров: 249
demn пишет:
Здравствуйте. Подскажите пожалуйста как вытащить название и исполнителя песни из файла ?

unpack() погляди это
Sanchis Отправлено: 29 Мая, 2013 - 12:17:47 • Тема: Как разбить массив имея строковые и числовые значения? • Форум: Регулярные выражения

Ответов: 11
Просмотров: 349
Сервер BFBC2, там не настроишь, не может конечно и можно в отдельности но тогда весь смысл этого мониторинга теряется, делается то он не под конкретный сервер а для всех желающих, так что эта штука некая благотворительность. Если честно я уже неделю пытаюсь врубиться в эти данные но логику не вижу, смотрел другие скрипты но в ООП я не силен. Знаю одно что в тех скриптах применяют Почитав про эти функции так же логику не уловил куда там чего кодировать раскодировать.
Sanchis Отправлено: 29 Мая, 2013 - 11:21:50 • Тема: Как разбить массив имея строковые и числовые значения? • Форум: Регулярные выражения

Ответов: 11
Просмотров: 349
DelphinPRO пишет:
я имею ввиду, что сервер наврядли отдает кучу безсвязных данных.


PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.         $soket = fsockopen("tcp://66.151.138.118", 48888, $errno, $errstr);
  4.           if (!$soket) {  
  5.              echo "ERROR: $errno - $errstr\n";
  6.           }
  7.           else {
  8.                 $request = "\x00\x00\x00\x00\x24\x00\x00\x00\x02\x00\x00\x00\x0b\x00\x00\x00listPlayers\x00\x03\x00\x00\x00\x61ll\x00";
  9.                         fwrite($soket, $request);
  10.                        
  11.           /* Получить данных в переменную */
  12.          
  13.                $playerStringNoFormat = fread($soket, 4096);
  14.                         var_dump($playerStringNoFormat);
  15.                      
  16.         fclose($soket);
  17.           }
  18. ?>
  19.  


CODE (html):
скопировать код в буфер обмена
  1.  
  2. string(1452) "@&#65533;,OK9clanTagnameguidteamIdsquadIdkillsdeathsscoreping32Logam33Logam33230120308Birang2444590350Invalid Chumby2245300309Invalid NURGLES211171030154Invalid HavePity228665091Invalid Tactical Jefus1266490144Stouger21107720119Invalid Radoot2306160113Invalid ZyreXko2276550253=TNT= FrogTheDog1177420196NoobGIRLjaidess131270262FtRDevilish Dexter21125116073 CrazyPolak1133170222Invalid YF-231356400208 xX-LeeLu-Xx2215260169Invalid Kawayi2438850237Invalid Ruike1366460220zyg19931466600364memento Lux Gladi1357540396Invalid Chagb"
  3.  
Sanchis Отправлено: 29 Мая, 2013 - 11:08:10 • Тема: Как разбить массив имея строковые и числовые значения? • Форум: Регулярные выражения

Ответов: 11
Просмотров: 349
DelphinPRO пишет:
вместо того чтобы разбирать данные валенные в кучу, лучше сразу все раскладывать по полочкам, во время приема данных.
как, вам уже сказали - многомерные ассоциативные массивы.


Во время приема, т.е. имеете ввиду принимать данные по байтно?

Цитата:
Почему мониторинг игр так популярен? стабильно две-три темы в неделю


Радость Наверное потому что это интересно.
Sanchis Отправлено: 29 Мая, 2013 - 10:21:30 • Тема: Как разбить массив имея строковые и числовые значения? • Форум: Регулярные выражения

Ответов: 11
Просмотров: 349
IllusionMH пишет:
Sanchis, БД уже не в моде?
Элементом массива может быть массив. сделайте массив массивов с данными игроков.
А еще бывают ассоциативные массивы, где в качестве индеквса выступает слово, в вашем случае это должно быть название поля.


Понимаете ли, это не статистика а мониторинг С базой давно было бы уже все понятно. Данные приходят по сокету от сервера а серверов может быть туева хуча (к чему прикрутишь по ip и порту). Данные игроков хранятся в базе но данные по игре отсылает сервер. Эти данные были приняты и разбиты в массив
Sanchis Отправлено: 29 Мая, 2013 - 09:39:42 • Тема: Как разбить массив имея строковые и числовые значения? • Форум: Регулярные выражения

Ответов: 11
Просмотров: 349
Здравствуйте, для мониторинга к игре пишу парсинг, данные принял и поместил в такой в массив:

PHP:
скопировать код в буфер обмена
  1.  
  2. [0] -> клан тег
  3. [1] -> Имя
  4. [2] -> команда
  5. [3] -> отряд
  6. [4] -> убийства
  7. [5] -> смерти
  8. [6] -> Очки
  9. [7] -> Пинг
  10. )
  11.  


Как не трудно догадаться, клан тега может и не быть и поэтому элементов одного игрока может быть меньше.

Пример реального массива:

PHP:
скопировать код в буфер обмена
  1.  
  2. [0] -> BloodReich
  3. [1] -> 2
  4. [2] -> 3
  5. [3] -> 1
  6. [4] -> 0
  7. [5] -> 190
  8. [6] -> 184
  9. [7] -> . =TOMMO92=
  10. [8] -> 2
  11. [9] -> 1
  12. [10] -> 3
  13. [11] -> 1
  14. [12] -> 570
  15. [13] -> 244
  16. [14] -> Logam33
  17. [15] -> Logam33
  18. [16] -> 1
  19. [17] -> 3
  20. [18] -> 0
  21. [19] -> 1
  22. [20] -> 0
  23. [21] -> 303
  24. [22] -> ElitE
  25. [23] -> bluetear1221
  26. [24] -> 2
  27. [25] -> 4
  28. [26] -> 1
  29. [27] -> 0
  30. [28] -> 180
  31. [29] -> 226
  32. [30] -> Amazon Man
  33. [31] -> 1
  34. [32] -> 2
  35. [33] -> 2
  36. [34] -> 1
  37. [35] -> 300
  38. [36] -> 123
  39. [37] -> YU75
  40. [38] -> 1
  41. [39] -> 1
  42. [40] -> 0
  43. [41] -> 4
  44. [42] -> 160
  45. [43] -> 216
  46. )
  47.  


Как видите данные не упорядоченные по числу элементов.

Как разделить эти данные по отдельным игрокам?

p.s. Данные динамичны
Sanchis Отправлено: 26 Мая, 2013 - 14:02:09 • Тема: Парсинг ответа из сокета • Форум: Работа с сетью

Ответов: 2
Просмотров: 1548
LIME пишет:
explode

Это понятно но по каким разделителям??? В том и дело что логику уловить не могу. Дело в том, что в начале строки клан тег и ник отделены бэкспэйсом BS но далее перед каким нибуть ником он отсутствует или присутствует другой, или между клан тегом и ником отсутствует (наверное связано с тем что приходит порциями), включит как разделитель обычный пробел так же не представляется возможным т.к. эти пробелы иногда должны остаться
Sanchis Отправлено: 26 Мая, 2013 - 12:48:53 • Тема: Парсинг ответа из сокета • Форум: Работа с сетью

Ответов: 2
Просмотров: 1548
Доброго времени! Пишу скрипт игрового мониторинга, отправляю запрос на сервер и получаю ответ
Вот код отправки и получения

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.      error_reporting(E_ALL);
  4.         $soket = fsockopen("tcp://66.151.138.118", 48888, $errno, $errstr);  
  5.           if (!$soket) {  
  6.              echo "ERROR: $errno - $errstr\n";
  7.           }
  8.           else {
  9.                 $request = "\x00\x00\x00\x00\x24\x00\x00\x00\x02\x00\x00\x00\x0b\x00\x00\x00listPlayers\x00\x03\x00\x00\x00\x61ll\x00";
  10.                 fwrite($soket, $request);
  11.                 socket_set_blocking($soket,1);
  12.           /* Получить данных в переменную */
  13.                         $player = fread($soket, 4096);
  14.                         print_r ($player);                             
  15.         fclose($soket);
  16.           }
  17. ?>
  18.  


Вот ответ на этот запрос

Цитата:

@ ,OK9clanTagnameguidteamIdsquadIdkillsdeathsscoreping32Invalid StickFawk2167625151Invalid noxa124916820224[J5] BountyRooster255886295The Commissioner25413855160DICEKilla132277715335x mozu x2511101600230rus51kiril512258620262 ChiwAwA <31219112050182 rokkaku_nat05131171415157 Still in Beta12912105586ECOHOHO2456445231ASixFootKitten1398870194Invalid Ruike151491235206crazyEscalad315611815352Invalid Radoot22312880104[ZISSOU] Dingo-Dingo21711120090 ComputronX2210111164114282 Yasherica251642300278Invalid Huy Mac128786995


Вот ответ включая не видимые символы

Цитата:

@SQ,SOHSTHOKSOH9BELclanTagEOTnameEOTguidACKteamIdBELsquadIdENQkillsACKdeathsENQscoreEOTpingSTX32BSInvalid StickFawkSOH2SOH1SOH625SOHSOH7 ETX 625 ETX 151 BS Invalid ENQ noxa1 SOH 2 SOH 4 SOH 9 STX 16 ETH 820


Как видите порядка в этих символах тоже не много при чем они меняются при каждом новом запросе.

Разобрать нужно на массивы которые будут содержать в себе информацию о игроках примерно так

PHP:
скопировать код в буфер обмена
  1.  
  2. // Первый пользователь
  3.  
  4. [0]->Invalid
  5. [1]->StickFawk21
  6. [2]->2
  7. [3]->6
  8. [4]->7
  9. [5]->625
  10. [6]->151
  11.  
  12. // Второй пользователь
  13.  
  14. [7]-> (Пустое значение т.к. клан тега нет)
  15. [8]->noxa1
  16. [9]->2
  17. [10]->4
  18. [11]->9
  19. [12]->16
  20. [13]->820
  21. )
  22.  


Вся беда в том, что опыта в программировании не так много для такого скрипта и я пытаюсь уловить логику уже трое суток, подскажите пожалуйста, как решить эту задачу?

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB