Topic: Cs serverio informacijos istraukimas

Sveiki, pradejau mokytis socketus ir bandau istraukti is counter-strike 1.6 serverio informacija, informacija iseina tik is dalies istraukti, gaunu pavadinima, zemelapi, taciau niekaip negaunu max zaideju skaiciaus, skaiciaus zaidzianciu serveryje. :) Galbut kas esate susidures su sia problema, tad galesite padeti, dekui is anksto ;)

<?php
$ip = "cs.eswc.lt";
$port = "27015";
$packet = "\377\377\377\377TSource Engine Query\0";
$connect = fsockopen("udp://$ip",$port);
socket_set_timeout($connect,1);
if(!$connect) {
    echo "off";
} else {
    fwrite($connect,$packet);
        $data = fread($connect, 1);
    $status = socket_get_status($connect);
    $data .= fread($connect, $status['unread_bytes']);
    echo $data;
    } 
fclose($connect);
?>

Re: Cs serverio informacijos istraukimas

http://www.phpfusion.lt/cs-server-info-panel,p580
http://www.php.lt/render/Forum;thread,13143

Re: Cs serverio informacijos istraukimas

Dėkui, dabar ištraukia žaidėjų skaičių, tačiau turiu šiokį tokį pagalbos prašymą. Jau visą dieną bandau išnagrinėti kaip kodas veikia, funkcijos ką daro suprantu, tačiau niekaip neįsikertu kaip kodas veikia, galbūt galėtumėt paaiškinti, labai būčiau dėkingas. Išties suprantu, kad durnai skamba :D

function getnextstring(&$data) {
    $temp=""; 
    $counter=0;
    while (ord($data[$counter++])!=0) {
        $temp.=$data[$counter-1];
        }
    $data=substr($data,strlen($temp)+1);
    return $temp;
}

Re: Cs serverio informacijos istraukimas

Kuri(-ios) eilutės/funkcijos neaiškios?

Re: Cs serverio informacijos istraukimas

Nesuprantu kaip gaunami sitie, visa kita lyg ir aisku $data[$counter++], $data[$counter-1];

Re: Cs serverio informacijos istraukimas

$data yra masyvas (nuoroda į masyvą) perduota kviečiant funkciją per funkcijos parametrus.
$counter yra lokalus kintamasis laikyti masyvo indekso reiškmei - "skaitliukas";