PHP: <?php if(!function_exists('getmicrotime')) { function getmicrotime() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } } function serverInfo($ip, $port) { $ip = gethostbyname($ip); $timeStart = getmicrotime(); $fp = fsockopen('udp://'.$ip, $port); stream_set_timeout($fp, 2); if($fp) { fwrite($fp,"\xFF\xFF\xFF\xFFTSource Engine Query\0\r"); $temp = fread($fp, 4); $status = socket_get_status($fp); if($status['unread_bytes']>0) { $temp = fread($fp, $status['unread_bytes']); $server['ping'] = (int)((getmicrotime() - $timeStart)*1000); $array = array(); $pos = 0; while($pos !== false) { $pos2 = strpos($temp, "\0", $pos+1); $array[] = substr($temp, $pos+1, $pos2-$pos)."\n"; $pos = $pos2; } $server['status'] = 'on'; if( strpos($array[0], $ip) !== 0) { $server['players'] = ord($array[5][0]); $server['maxplayers'] = ord($array[5][1]); $server['name'] = trim(substr($array[0], 1)); $server['map'] = trim($array[1]); $server['game'] = trim($array[2]); } else { $server['players'] = ord($array[5][0]); $server['maxplayers'] = ord($array[5][1]); $server['name'] = trim($array[1]); $server['map'] = trim($array[2]); $server['game'] = trim($array[3]); } $command = pack("V", -1) . 'W'; fwrite($fp, $command, strlen($command)); $temp = fread($fp, 1500); $temp = substr($temp, 5); $lo = (ord($temp[1]) << 8) | ord($temp[0]); $hi = (ord($temp[3]) << 8) | ord($temp[2]); $data = "\xFF\xFF\xFF\xFF\x55".pack("V", ($hi << 16) | $lo); fwrite($fp, $data); $temp = fread($fp, 5); $status = socket_get_status($fp); if($status['unread_bytes']>0) { $temp = fread($fp, $status['unread_bytes']); $array = array(); $temp = substr($temp, 1); for($i=1;$i<=$server['players'];$i++) { $temp = substr($temp, 1); $pos = strpos($temp, "\0"); $name = substr($temp, 0, $pos); $temp = substr($temp, $pos+1); $lo = (ord($temp[1]) << 8) | ord($temp[0]); $hi = (ord($temp[2]) << 8) | ord($temp[3]); $temp = substr($temp, 4); $kills = ($hi << 16) | $lo; $f = @unpack("f1float", $temp); $temp = substr($temp, 4); $time = (int)$f['float']; if(trim($name)) $server['stats'][] = array("name" => $name, "kills" => $kills, "time" => gmdate("H:i:s", $time)); } } } else $server['status'] = 'off'; } return $server; } print_r(serverInfo("cs.otstrel.ru", 27025)); ?> Вот скрипт снифает который кску,но я получаю массивные данные,а как мне их,к примеру,преобразовать в таблицу?
не в моих интересах тестить твой код,чтоб выводить массив => надо знать его структуру,если индексы установлены по дефолту и он 1-мерный: PHP: <?php $a=array(a,b,c,d,e,f,g); foreach($a as $key=>$value){ echo $key,' ',$value,'<br/>'; } /* 0 a 1 b 2 c 3 d 4 e 5 f 6 g */ ?> ________ 0ph.ru
Выводит вот что: PHP: Array ( [ping] => 189 [status] => on [players] => 20 [maxplayers] => 21 [name] => TheAbyss 1.6 #8 Public [map] => de_vertigo [game] => cstrike [stats] => Array ( [0] => Array ( [name] => I'm Godzilla, you are Japan [kills] => 0 [time] => 00:00:12 ) [1] => Array ( [name] => Dredd [kills] => 0 [time] => 00:03:27 ) [2] => Array ( [name] => al1baba [kills] => 0 [time] => 00:00:08 ) [3] => Array ( [name] => <==|=ROMIK=|==> [kills] => 0 [time] => 00:01:49 ) [4] => Array ( [name] => 6ATAH [kills] => 0 [time] => 00:14:07 ) [5] => Array ( [name] => 1 raz igrau O_o [kills] => 0 [time] => 00:20:42 ) [6] => Array ( [name] => X_2 [kills] => 0 [time] => 00:00:13 ) [7] => Array ( [name] => ggg [kills] => 0 [time] => 00:00:13 ) [8] => Array ( [name] => Anarh [kills] => 0 [time] => 00:10:56 ) [9] => Array ( [name] => PAIN [kills] => 0 [time] => 00:14:34 ) [10] => Array ( [name] => ZinA [kills] => 0 [time] => 00:04:26 ) [11] => Array ( [name] => M.A.S.H.A. [kills] => 0 [time] => 00:00:15 ) [12] => Array ( [name] => KAMEHb [kills] => 0 [time] => 00:00:13 ) [13] => Array ( [name] => tv [kills] => 0 [time] => 00:00:14 ) [14] => Array ( [name] => eAsy ? [kills] => 0 [time] => 00:00:13 ) [15] => Array ( [name] => VODKA [kills] => 0 [time] => 00:02:04 ) [16] => Array ( [name] => I am | mef [kills] => -1 [time] => 00:15:47 ) [17] => Array ( [name] => I^np* sho0t[3]R [kills] => 0 [time] => 00:11:01 ) ) ) 0 a 1 b 2 c 3 d 4 e 5 f 6 g
Привет всем. Как на пхп посчитать допустим сумму двох двоичных чисел?) я чето гуглю но чето ничего не нашел( гуглить время нет а код очень нужен. зарание огромное спасибо
сорри щас туплю (заболел) но ета функция вроде для конвертирование одной системе в другую. а мне надо чтобы сумировать отнимать и т.д. думал может нужно написать число и в скобках какая система но выдало ошибку.
хз чето туплю. вот делаю так PHP: <?php $a = 101001101011; $b = 101001; $result = (bool)$a + (bool)$b; echo $result; ?> в ответ получаю 2
короче незнаю правильно или нет но попробовал сделать так. PHP: <?php $hexadecimal = '1101'; $a = base_convert($hexadecimal, 2, 10); $hexadecimal = '101'; $b = base_convert($hexadecimal, 2, 10); $result = $a + $b; $c = base_convert($result, 10, 2); echo $c; ?> вроде работает норм. а нету более рационального способа?
Ну тогда уж лучше так: PHP: <?php $hexadecimal = '1101'; $a = decbin($hexadecimal); $hexadecimal = '101'; $b = decbin($hexadecimal); $result = $a + $b; printf ("%b",$result); ?> Но тут мы результат не переводим в двоичный вид, а просто выводим на экран в двоичном...