Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите с заменой ид на ник

 PHP.SU

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


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

> Описание: ОЧень нужна помощь.
Kenpachi
Отправлено: 22 Августа, 2010 - 13:17:05
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. &#65279;<html>
  2.  
  3. <meta http-equiv="refresh" content="5; URL="109.185.153.130/chat.php"   charset="UTF-8">
  4.  
  5. <?PHP
  6.  
  7. echo "Чат сервера. <br>";
  8.  
  9. $file1='/home/logservice/logs/world2.chat';
  10.  
  11. $f=fopen($file1,'r');
  12.  
  13. if (!$f) die("Не удалось открыть файл!");
  14.  
  15.  
  16.  
  17. fseek($f,-1900,SEEK_END); // число означает не количество строк, а количество байт
  18. $buffer=fgets($f);               // А эта строка для того чтобы установить указатель именно в начало следующей строки , т.к. fseek  попадет не в начало строки
  19. while (!feof($f)) {
  20. $stroka=fgets($f,9999);
  21.  
  22.  
  23. $data=substr($stroka,0,19);
  24.  
  25. $dlina=strlen($stroka);
  26.  
  27. $pos=strrpos($stroka,"msg=");
  28.  
  29. $stroka1=substr($stroka,($pos+4),$dlina);
  30.  
  31. $stroka1=base64_decode($stroka1);
  32.  
  33. $stroka1=iconv("UTF-16","UTF-8",$stroka1);
  34. $smile = strtr($stroka1, array(
  35.     "<0:0>" => "<img src='smile/1.gif'>",
  36.     "<0:1>" => "<img src='smile/2.gif'>",
  37.     "<0:2>" => "<img src='smile/3.gif'>",
  38.     "<0:3>" => "<img src='smile/4.gif'>",
  39.     "<0:4>" => "<img src='smile/5.gif'>",
  40.     "<0:5>" => "<img src='smile/6.gif'>",
  41.     "<0:6>" => "<img src='smile/7.gif'>",
  42.     "<0:7>" => "<img src='smile/8.gif'>",
  43.     "<0:8>" => "<img src='smile/9.gif'>",
  44.     "<0:9>" => "<img src='smile/10.gif'>",
  45.     "<0:10>" => "<img src='smile/11.gif'>",
  46. ));
  47. $msg = preg_replace("/<0>|&#57344;|&#57345;|&#57346;/"," ","$smile");
  48. $domain = strstr($stroka, 'chat');
  49. $pos2=strstr($stroka, "msg");
  50. $info = str_replace($pos2," msg= ",$domain);
  51. $chat = ($info. $msg. '<b>');
  52. $str= $chat;
  53. $color = 'black';
  54. $colors = array(
  55. 'chl=1' => '#FF9933',
  56. 'dst=' => '#CC0000',
  57. 'fid=' => '#3399FF',
  58. 'chl=2' => '#00CC00',
  59. );
  60. if(preg_match('/chl=1|dst=|fid=|chl=2/',$str,$m))
  61. {
  62. $color = $colors[$m[0]];
  63. }
  64. echo '<p style="color:'.$color.'">'.$str.'<p>';
  65.  
  66.  
  67. $i++;
  68.  
  69. }
  70.  
  71.  
  72.  
  73. ?>
  74.  
  75. </html>


Вот скрипт. он считывает логи с сервера. НО во всех логах вместо никнеймов видны только их id.
Нужно сделать так что бы все id заменялись на никнеймы. Все id и никнеймы хранятся в Бд

Таблица - uWebplayers. Ид - roleid. Ник - rolename.
(Добавление)
Ну или хоть идейки подкидывайте. Как такое организовать Огорчение
(Добавление)
Пример лога где src=ид; персонажа dst=ид персонажа которому пишут в пм

CODE (text):
скопировать код в буфер обмена
  1. chat : Whisper: src=7920 dst=9824 msg= 17
  2.  
  3. chat : Guild: src=5488 fid=17 msg= когда водка паленая тогда так
  4.  
  5. chat : Whisper: src=418 dst=4417 msg= я був тод1 128
  6.  
  7. chat : Chat: src=8448 chl=2 msg= будет весело если комп отрбуится
  8.  
  9. chat : Whisper: src=418 dst=4417 msg= лвл
  10.  
  11. chat : Guild: src=2145 fid=16 msg= если обычный то я пас а бос то +++++++++++++
  12.  
  13. chat : Chat: src=688 chl=1 msg= Привееееееееееетик)
  14.  
  15. chat : Whisper: src=9824 dst=720 msg= еще не решила)
  16.  
  17. chat : Whisper: src=2737 dst=4817 msg= L147
  18.  
  19. chat : Whisper: src=9824 dst=7920 msg= ясно)
  20.  
  21. chat : Chat: src=1409 chl=0 msg= ну дибила...
  22.  
  23. chat : Guild: src=5488 fid=17 msg= а тут бешенство
  24.  
  25. chat : Chat: src=832 chl=1 msg= привет)
  26.  
  27. chat : Whisper: src=7920 dst=9824 msg= tak cto?
  28.  
  29. chat : Chat: src=5250 chl=2 msg= нук сферу ставь и магом хиль
  30.  
  31. chat : Chat: src=3552 chl=0 msg=
  32.  
  33. chat : Whisper: src=418 dst=11488 msg= неапнеш
  34.  
  35. chat : Whisper: src=2737 dst=4817 msg= L148
  36.  
  37. chat : Chat: src=5250 chl=2 msg= меня
  38.  
  39. chat : Whisper: src=9824 dst=7920 msg= у меня есть муж тут))
  40.  
  41. chat : Chat: src=7712 chl=2 msg= что за страж, ты демона убивал?
  42.  
  43. chat : Whisper: src=9824 dst=7920 msg= надпись спала
  44.  
  45. chat : Whisper: src=418 dst=11488 msg= я був тод1 128 лвл
  46.  
  47. chat : Whisper: src=4480 dst=7856 msg= я собиратся пошёл
  48.  
  49. chat : Chat: src=5250 chl=2 msg= так попробуем
  50.  
  51. chat : Whisper: src=4480 dst=7856 msg= в душ и т.д
  52.  
  53. chat : Whisper: src=418 dst=11488 msg= баф
  54.  
  55. chat : Guild: src=9584 fid=16 msg= приди и посматри в лесопильне
  56.  
  57. chat : Whisper: src=2737 dst=4817 msg= L149
  58.  
  59. chat : Chat: src=3488 chl=2 msg= дэ

(Отредактировано автором: 22 Августа, 2010 - 14:34:21)

 
 Top
kochan10
Отправлено: 22 Августа, 2010 - 18:27:08
Post Id


Гость


Покинул форум
Сообщений всего: 118
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




по регуляркам находить /src=(\d{1,n})/ и, производя поиск по этому ИДу в таблице, заменять на ник используя preg_replace
я бы так сделал
(Добавление)
описываю:
PHP:
скопировать код в буфер обмена
  1. //сначала парсишь с базы все ники, чтобы был массив, скажем такого плана
  2. $nicks=array('id' => 'nick');
  3. $text = //тут сам твой текст
  4. //потом поиск по тексту по маске
  5. $pattern = "//(src=)|(dst=)(\d+)/i";
  6. preg_match_all($pattern,$text,$matches);
  7. //Теперь по полученным значениям вставляешь ники
  8. foreach($matches['3'] as $val)
  9.         {
  10.                 $text = str_ireplace("src=$val",$arr[$val],$text);
  11.                 $text = str_ireplace("dst=$val",$arr[$val],$text);
  12.         }
  13. //$text на выходе это начальный лог с никами вместо src=id и dst=id

Или тебе нужно заменить только ИДы и оставить src= и dst= ?

(Отредактировано автором: 22 Августа, 2010 - 21:32:02)

 
 Top
Kenpachi
Отправлено: 22 Августа, 2010 - 19:52:10
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




ОКи. Буду ждать пасиб большое.
 
 Top
kochan10
Отправлено: 22 Августа, 2010 - 21:32:23
Post Id


Гость


Покинул форум
Сообщений всего: 118
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Поправил предыдущее сообщение
 
 Top
devakoz
Отправлено: 29 Июня, 2013 - 23:35:52
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Июнь 2013  


Помог: 0 раз(а)




Хм.... я не понял куда чего писать можете помочь или скинуть как должно быть это чудо чтобы иды не писались а ники были скажите
(Добавление)
chat : Chat: src=5250 chl=2 msg= так попробуем
вот появился еше вопрос можно ли сделать так
заместо chat написать Чат ибо вовсе убрать
заместо Chat Написать Допустим мир личка клан пати и т.д чтобы он определял
заместо src=5250 писал ники персов который пишут
заместо chl=2 dst=11488 fid=16 там по моему еще есть функционал чтобы писали допусти ник если персу написано клану торг мир ну подобие если можно то мир и т.д убрать, а оставить только личку чтобы писал.
Заместо msg= нук сферу ставь и магом хиль Писал бы шепчет ну все как в игре можно ли так сделать только реализовать в php?
если да то скажите как помогите хотелось бы научиться php на высоком уровне читал гайды а вот столкнулся с такой трабло недавно и да надо написать личный кабинет решил функционалы впихнуть, а плохо оказывается знаю помогите...
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB