method . " " . $this->url . " HTTP/1.1\r\n"; $result .= "Host: ". $this->host ."\r\n"; foreach ($this->param as $key => $value) { $result .= $key . ": " . $value . "\r\n"; } $result .= "Connection: Close\r\n\r\n"; $result .= $this->data; return $result; } /** * Установка параметров запроса * @parma string $name * @parma string $value */ public function setParameter($name, $value) { $this->param[$name] = $value; } /** * Метод запроса GET или POST */ public function setMethod($method) { $this->method = $method; } public function setUrl($url) { $this->url = $url; $this->host = parse_url($this->url, PHP_URL_HOST); } public function getUrl() { return $this->url; } /** * Содержание запроса */ public function setContent($data) { $this->setParameter ("Content-length", strlen($data)); $this->data = $data; } /** * Посылает запрос и возвращает страницу */ public function getPage() { $host = ($this->proxy_host) ? $this->proxy_host : $this->host; $port = ($this->proxy_port) ? $this->proxy_port : $this->port; $socket = fsockopen($host, $port, $errno, $errstr, 30); if (! $socket) { return null; // Exception } else { $header = $this->getHeader(); fwrite($socket, $header); $result = null; while (! feof($socket)) { $result .= fgets($socket, 128); } fclose($socket); return $result; } return null; } }