TeamSpeak 3 PHP Framework

Я все еще изучаю PHP, и я впервые использую эту библиотеку (TeamSpeak 3 PHP Framework), Я пытаюсь вернуть количество онлайн-пользователей в определенной группе, я пробовал несколько разных способов, но безуспешно.

Этот счетчик подсчитывает всех пользователей в группе (включая офлайн-пользователей):

$admins = 0;
foreach($ts3->serverGroupGetById(12)->clientList() as $client) {
$admins++;
}

Поэтому я попытался сравнить этот список со списком онлайн-пользователей:

$admins = 0;
foreach($ts3->serverGroupGetById(12)->clientList() as $client) {
if($ts3->clientList($client)) {
$admins++;
}
}

И иногда это работает, я говорю иногда, потому что я попробовал это на своем виртуальном сервере и никаких проблем, счет был правильным, но когда я попробовал это на другом виртуальном сервере (я изменил ID группы и порт), я получаю это:

Warning: preg_match(): Unknown modifier '9' in C:\xampp\htdocs\serverstatus\libraries\TeamSpeak3\Helper\String.php on line 192

Это предупреждение появляется только для некоторых групп серверов, я не знаю причину.


$admins = 0;
foreach($ts3->clientList($client) as $client) {
$admins++;
}

Я предполагаю, что этот фрагмент кода должен показывать всех онлайн-пользователей, но я проверял его, и значение не всегда онлайн-пользователей, как я уже говорил ранее на моем виртуальном сервере, он показывает правильное количество, но когда я попробовал его на другом виртуальном сервере, я получил 48 но есть 61 пользователь онлайн.

2

Решение

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

Вот что вы ищете, протестировали и работаете:

   foreach($ts3_VirtualServer->serverGroupClientList(11) as $admins){
foreach($arr_ClientList as $ts3_Client)
if(in_array($ts3_Client['client_nickname'], $admins)){
$adminsCount++;
}
}

Надеюсь, это поможет;)

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]