function GetStatus($host, $port, $url) { self::$errno = 0; self::$errstr = ''; $FP = @fsockopen($host, $port, self::$errno, self::$errstr, 2); if ($FP) { $strVars = $url; $strRequest = "GET " . $url . " HTTP/1.0\r\n"; $strRequest .= "User-Agent: BitrixSMCluster\r\n"; $strRequest .= "Accept: */*\r\n"; $strRequest .= "Host: {$host}\r\n"; $strRequest .= "Accept-Language: en\r\n"; $strRequest .= "\r\n"; fputs($FP, $strRequest); $headers = ""; while (!feof($FP)) { $line = fgets($FP, 4096); if ($line == "\r\n") { break; } $headers .= $line; } $text = ""; while (!feof($FP)) { $text .= fread($FP, 4096); } fclose($FP); $match = array(); if (preg_match_all('#<dt>(.*?)\\s*:\\s*(.*?)</dt>#', $text, $match)) { $arResult = array(); foreach ($match[0] as $i => $m0) { $key = $match[1][$i]; $value = $match[2][$i]; if ($key == 'Total accesses') { $accessMatch = array(); if (preg_match('/^(.*) - (.*)\\s*:\\s*(.*)$/', $value, $accessMatch)) { $value = $accessMatch[1]; $arResult[$accessMatch[2]] = $accessMatch[3]; } } $arResult[$key] = $value; } return $arResult; } } return false; }