. */ class HTTPConnector { private $cookies = array(); public function post($host, $post) { $ssl = false; if(strtolower(substr($host, 0, 7)) == 'http://') { $host = substr($host, 7); } else if(strtolower(substr($host, 0, 8)) == 'https://') { $host = substr($host, 8); $ssl = true; } $hexp = explode('/', $host, 2); $pexp = explode(':', $hexp[0]); $host = $pexp[0]; if(count($pexp) > 1) $port = $pexp[1]; else $port = 80; $rhost = $host; if($ssl){ $rhost = "ssl://".$host; } $path="/".$hexp[1]; $data = ""; $fp = fsockopen($rhost, $port); if(!$fp) return; fputs($fp, "POST $path HTTP/1.1\r\n"); foreach($post as $key => $val) { if(is_array($val)) { foreach($val as $subval) { if($data != "") { $data.="&"; } $data .= $key."=".$subval; } } else { if($data != "") { $data.="&"; } $data .= $key."=".$val; } } fputs($fp, "Accept-Language: de-DE\r\n"); fputs($fp, "Content-Type: application/x-www-form-urlencoded\r\n"); fputs($fp, "Accept-Encoding: deflate\r\n"); fputs($fp, "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2)\r\n"); fputs($fp, "Host: ".$host."\r\n"); foreach($this->cookies as $cookiename => $cookievalue) { fputs($fp, "Cookie: ".$cookiename."=".$cookievalue."\r\n"); } fputs($fp, "Content-Length: ".strlen($data)."\r\n"); fputs($fp, "Connection: Keep-Alive\r\n"); fputs($fp, "Cache-Control: no-cache\r\n"); fputs($fp, "\r\n"); fputs($fp, $data); $res = ""; while(!feof($fp)) { $res .= fread($fp, 256); } $exp = explode("\n", str_replace("\r", "", $res)); for($i=0;$icookies[$cookie[0]] = $cookieval[0]; } else if($exp[$i] == "") { break; } } fclose($fp); return $res; } public function get($host) { $ssl = false; if(strtolower(substr($host, 0, 7)) == 'http://') { $host = substr($host, 7); } else if(strtolower(substr($host, 0, 8)) == 'https://') { $host = substr($host, 8); $ssl = true; } $hexp = explode('/', $host, 2); $pexp = explode(':', $hexp[0]); $host = $pexp[0]; if(count($pexp) > 1) $port = $pexp[1]; else $port = 80; $rhost = $host; if($ssl){ $rhost = "ssl://".$host; } $path="/".$hexp[1]; $fp = fsockopen($rhost, $port); if(!$fp) return; fputs($fp, "GET $path HTTP/1.1\r\n"); fputs($fp, "Accept-Language: de-DE\r\n"); fputs($fp, "Accept-Encoding: deflate\r\n"); fputs($fp, "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2)\r\n"); fputs($fp, "Host: ".$host."\r\n"); foreach($this->cookies as $cookiename => $cookievalue) { fputs($fp, "Cookie: ".$cookiename."=".$cookievalue."\r\n"); } fputs($fp, "Connection: Keep-Alive\r\n"); fputs($fp, "Cache-Control: no-cache\r\n"); fputs($fp, "\r\n"); $res = ""; while(!feof($fp)) { $res .= fread($fp, 256); } $exp = explode("\n", str_replace("\r", "", $res)); for($i=0;$icookies[$cookie[0]] = $cookieval[0]; } else if($exp[$i] == "") { break; } } fclose($fp); return $res; } } ?>