Делаю мониторинг серверов игры MW2, хочу прикрутить к нему проверку по античиту.
Для этого мне нужно чтобы при нажатии на ник игрока происходил переход на сайт античита по его ID.

Я пробую решить данную проблему сопоставив 2 txt файла.
Например содержимое 1-го файла (cheater.txt):
Gamer1
Gamer2
Gamer3
Gamer4
Cодержимое 2-го файла (xuid.txt):
xuid1
xuid2
xuid3
xuid4
Нужно реализовать так, чтобы при нажатии на ник открывалась ссыла с его XUID.
Например нажимаем на Gamer1, открывается ссылка с xuid1 и т.д.
Собственно как пытаюсь реализовать:
<?php
$cheater = file_get_contents("cheater.txt", true);
$cheater = str_replace("\r", "", $cheater);
$cheater = explode("\n", $cheater);
$xuid = file_get_contents("xuid.txt", true);
$xuid = str_replace("\r", "", $xuid);
$xuid = explode("\n", $xuid);
if (in_array($player['name'], $cheater)) { $player['name'] = "<a href="$xuid"><font color='red' title='ОБНАРУЖЕНЫ ЧИТЫ'><s>{$player['name']}</s></font></a>"; }
else {
?>
В итоге вместо ссылки получаю слово Array
Подскажите пожалуйста всё ли я правильно делаю и может есть какой нибудь более простой способ?
Спустя 7 минут, 59 секунд (8.04.2012 - 20:57) nugle написал(а):
Xsfd
$xuid это массив, тебе нужно доставать $xuid по имени игрока или по его id
$xuid это массив, тебе нужно доставать $xuid по имени игрока или по его id
Спустя 26 минут, 42 секунды (8.04.2012 - 21:24) Xsfd написал(а):
Я достаю имя игрока по массиву $cheater.
Грубо говоря мне нужно сделать ссылку:
<a href='http://dot.zapto.org/$xuid'>НИК</a>
как вытащить ник я понял, но вот как сделать так чтобы к определённому нику привязывался определённый id из дугого txt
Грубо говоря мне нужно сделать ссылку:
<a href='http://dot.zapto.org/$xuid'>НИК</a>
как вытащить ник я понял, но вот как сделать так чтобы к определённому нику привязывался определённый id из дугого txt
Спустя 14 минут, 8 секунд (8.04.2012 - 21:38) Игорь_Vasinsky написал(а):
ты фигнёй не страдай. ты ещё создай для каждого юзера по паре файлов и сопоставляй.
1 файл users.txt
user1:::xuid1
user2:::xuid2
user3:::xuid3
Грубо говоря.
1 файл users.txt
user1:::xuid1
user2:::xuid2
user3:::xuid3
Грубо говоря.
$users = file('users.txt');
foreach($users as $user)
{
$user = explode(':::', $user);
echo '<a href="....?id='.$user[1].'">'.$user[0].'</a><br/>';
}
Спустя 35 минут, 26 секунд (8.04.2012 - 22:13) Xsfd написал(а):
Спасибо. Работает. Как только наберу 10 сообщений, обязательно поставлю плюсик))
P.S. ещё бе с пингом помогли
P.S. ещё бе с пингом помогли

Спустя 20 минут, 31 секунда (8.04.2012 - 22:34) Xsfd написал(а):
Возникла проблемка. Код выводит только того, кто идёт самым последним в списке.
$cheaters = file('plugins/chitID/cheater.txt');
foreach($cheaters as $cheater)
{
$cheater = explode(':::', $cheater);
}
if (in_array($player['name'], $cheater))
{ $player['name'] = "<a href='{$lgsl_config['text']['aci']}".$cheater[1]."'><font color='red' title='aCI Banned'><s>{$player['name']}</s></font></a>"; }
Спустя 3 минуты, 30 секунд (8.04.2012 - 22:37) Игорь_Vasinsky написал(а):
<?php
$cheaters = file('plugins/chitID/cheater.txt');
foreach($cheaters as $cheater)
{
$cheater = explode(':::', $cheater);
if (in_array($player['name'], $cheater))
echo $player['name'] = "<a href='{$lgsl_config['text']['aci']}".$cheater[1]."'>
<font color='red' title='aCI Banned'><s>{$player['name']}</s></font></a><br />";
}
?>
Спустя 23 минуты, 17 секунд (8.04.2012 - 23:01) Xsfd написал(а):
Всё равно что-то не то делаю. Вообще все пропало.
Вот как выглядит оригинал куда ужно вставит:
foreach в foreach не встаёт
Вот как выглядит оригинал куда ужно вставит:
foreach ($server['p'] as $player_key => $player)
{
echo "
<tr>";
foreach ($fields as $field)
{
if (in_array($player['name'], $admin)) { $player['name'] = "<font color='#00FF00' title='Администратор сервера'>{$player['name']}</font>"; }
elseif (in_array($player['name'], $cheater))
{ $player['name'] = "<a href='{$lgsl_config['text']['aci']}".$cheater[1]."'>
<font color='red' title='aCI Banned'><s>{$player['name']}</s></font></a><br />";}
else { $player['name'] = "<font title='Игрок'>{$player['name']}</font>";
}
foreach в foreach не встаёт
Спустя 8 минут, 14 секунд (8.04.2012 - 23:09) Игорь_Vasinsky написал(а):
echo - выводит контент сгенерированный php на страницу для пользователя.
Спустя 54 секунды (8.04.2012 - 23:10) Игорь_Vasinsky написал(а):
у тя фигурных скобок по паре для циклов?
Спустя 2 минуты, 28 секунд (8.04.2012 - 23:12) Xsfd написал(а):
да. Вот как выглядит вся страница
<?php
include "plugins/grouplist.txt";
//-------------------------------------------------------------------------------------------------- ----------+
include "lgsl_config.php";
require "lgsl_class.php";
//-------------------------------------------------------------------------------------------------- ----------+
// THIS CONTROLS HOW THE PLAYER FIELDS ARE DISPLAYED
$fields_show = array("name", "score", "kills", "deaths", "team", "ping", "bot", "time"); // ORDERED FIRST
$fields_hide = array("teamindex", "pid", "pbguid"); // REMOVED
$fields_other = TRUE; // FALSE TO ONLY SHOW FIELDS IN $fields_show
//-------------------------------------------------------------------------------------------------- ----------+
// GET THE SERVER DETAILS AND PREPARE IT FOR DISPLAY
$s = $_GET['s'];
$lgsl_server_id = $_GET['s'];
global $lgsl_server_id;
$server = lgsl_query_cached("", "", "", "", "", "sep", $lgsl_server_id);
if (!$server) { echo "<div style='margin:auto; text-align:left'> {$lgsl_config['text']['mid']} </div>"; return; }
$fields = lgsl_sort_fields($server, $fields_show, $fields_hide, $fields_other);
$server = lgsl_sort_players($server);
$server = lgsl_sort_extras($server);
$misc = lgsl_server_misc($server);
$server = lgsl_server_html($server);
echo "
<div style='color: grey; background-color: #303030; border-radius:7px; box-shadow:0 0 7px; margin:auto; overflow:auto; text-align:left; padding:10px'>";
if (empty($server['p']) || !is_array($server['p']))
{
echo "
<table cellpadding='4' cellspacing='2' style='margin:auto'>
<tr>
<td> {$lgsl_config['text']['npi']} </td>
</tr>
</table></div>";
}
else
{
echo "
<table cellpadding='4' cellspacing='2' style='margin:auto' width='400px'>
<tr>";
foreach ($fields as $field)
{
$field = ucfirst($field);
if ($field == 'Name') { $field = 'Игрок'; }
elseif ($field == 'Ping') { $field = 'Пинг'; }
elseif ($field == 'Score') { $field = 'Фраги'; }
elseif ($field == 'Kills') { $field = 'Убил'; }
elseif ($field == 'Deaths') { $field = 'Умер'; }
elseif ($field == 'Squad') { $field = 'Отряд'; }
elseif ($field == 'Team') { $field = 'Комманда'; }
elseif ($field == 'Time') { $field = 'Время'; }
echo "
<td class='forumheader3' style='color:#EF7A05;padding:5px'> <b>{$field}</b> </td>";
}
echo "
</tr>";
foreach ($server['p'] as $player_key => $player)
{
echo "
<tr>";
foreach ($fields as $field)
{
if (in_array($player['name'], $admin)) { $player['name'] = "<font color='#00FF00' title='Администратор сервера'>{$player['name']}</font>"; }
elseif (in_array($player['name'], $gamer)) { $player['name'] = "<font color='#ffa600' title='Продвинутый игрок'>{$player['name']}</font>"; }
elseif (in_array($player['name'], $elit)) { $player['name'] = "<font color='#009eff' title='Элита'>{$player['name']}</font>"; }
elseif (in_array($player['name'], $inf)) { $player['name'] = "<font color='#009eff' title='Клан INFRACTION'>{$player['name']}</font>"; }
elseif (in_array($player['name'], $nest)) { $player['name'] = "<font color='blue' title='Клан NEST'>{$player['name']}</font>"; }
elseif (in_array($player['name'], $che)) { $player['name'] = "<font color='#ff0000' title='Клан Che Guevara'>{$player['name']}</font>"; }
elseif (in_array($player['name'], $b2w)) { $player['name'] = "<font color='#ff00ff' title='Клан Between II World'>{$player['name']}</font>"; }
elseif (in_array($player['name'], $de)) { $player['name'] = "<font color='chocolate' title='Клан Dark Elite'>{$player['name']}</font>"; }
elseif (in_array($player['name'], $snb)) { $player['name'] = "<font color='darkgreen' title='Клан Steel and Blood'>{$player['name']}</font>"; }
elseif (in_array($player['name'], $iw4)) { $player['name'] = "<font color='SpringGreen' title='Клан IW4mp SQUAD'>{$player['name']}</font>"; }
elseif (in_array($player['name'], $hw)) { $player['name'] = "<font color='Firebrick' title='Клан HELL WARS'>{$player['name']}</font>"; }
elseif (in_array($player['name'], $suspicion)) { $player['name'] = "<font color='#f36223' title='Подозрительный игрок'><u>{$player['name']}</u></font>"; }
elseif (in_array($player['name'], $cheater))
{ $player['name'] = "<a href='{$lgsl_config['text']['aci']}".$cheater[1]."'> <font color='red' title='aCI Banned'><s>{$player['name']}</s></font></a><br />";}
else { $player['name'] = "<font title='Игрок'>{$player['name']}</font>";
}
echo "<td>{$player[$field]}</td>";
}
echo "
</tr>";
}
echo "
</table> </div>";
}
Спустя 2 часа, 17 минут, 16 секунд (9.04.2012 - 01:29) Xsfd написал(а):
У меня вообще не выходит...
FOREACH не встаёт в IF
FOREACH не встаёт в IF
Спустя 1 час, 24 минуты, 36 секунд (9.04.2012 - 02:54) Xsfd написал(а):
Что-то с переменной
$cheater = explode(':::', $cheater);
Она не переводит строку. хотя на сколько я слышал должна
$cheater = explode(':::', $cheater);
Она не переводит строку. хотя на сколько я слышал должна
Спустя 1 месяц, 11 часов, 47 минут, 59 секунд (9.05.2012 - 14:42) Xsfd написал(а):
Блин, щас вернулся к данному вопросу и всё равно понять не могу как сделать так, чтобы читалась не только первая строчка