• Модуль: cluster
  • Путь к файлу: ~/bitrix/modules/cluster/classes/general/webnode.php
  • Класс: CClusterWebnode
  • Вызов: CClusterWebnode::GetStatus
static function GetStatus($host, $port, $url)
{
	self::$errno = 0;
	self::$errstr = '';
	$protocol = ($port === "443") ? "ssl://" : "";
	$FP = @fsockopen($protocol.$host, $port, self::$errno, self::$errstr, 2);
	if($FP)
	{
		$strVars = $url;
		$strRequest = "GET ".$url." HTTP/1.0rn";
		$strRequest.= "User-Agent: BitrixSMClusterrn";
		$strRequest.= "Accept: */*rn";
		$strRequest.= "Host: $hostrn";
		$strRequest.= "Accept-Language: enrn";
		$strRequest.= "rn";
		fputs($FP, $strRequest);

		$headers = "";
		while(!feof($FP))
		{
			$line = fgets($FP, 4096);
			if($line == "rn")
				break;
			$headers .= $line;
		}

		$text = "";
		while(!feof($FP))
			$text .= fread($FP, 4096);

		fclose($FP);

		$match = array();
		if(preg_match_all('#
(.*?)\s*:\s*(.*?)
#', $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; }