我仍然在学习PHP,这是我第一次使用这个库(TeamSpeak 3 PHP框架),我试图返回一个特定组的在线用户数量,我尝试了几种不同的方法,但没有成功。
这个计算组中的所有用户(包括脱机用户):
$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个用户在线。
发布于 2017-01-05 14:09:52
我知道那是一年前的事了,但这可能会有帮助,因为我在谷歌上搜索了同样的问题,过了一段时间,我找到了如何做到这一点。
下面是您正在寻找、测试和工作的内容:
foreach($ts3_VirtualServer->serverGroupClientList(11) as $admins){
foreach($arr_ClientList as $ts3_Client)
if(in_array($ts3_Client['client_nickname'], $admins)){
$adminsCount++;
}
}希望能有所帮助;)
https://stackoverflow.com/questions/32572167
复制相似问题