$value) $http_request .= "$header: $value\r\n"; $http_request .= "\r\n"; if( !empty($data) ) $http_request .= $request; $response = ''; if( false == ( $fs = @fsockopen( $host, $port, $errno, $errstr, 3) ) || ! is_resource($fs) ) return false; fwrite($fs, $http_request); while ( !feof($fs) ) $response .= fgets($fs, 1160); // One TCP-IP packet fclose($fs); $response = explode("\r\n\r\n", $response, 2); $ret = (object)array('headers' => array(), 'content'=> $response[1]); $headers = explode("\n", $response[0]); foreach( $headers as $rheader){ list($header, $value) = explode(':', $rheader, 2); if( !empty($header) && ! empty($value) ) { $ret->headers[ trim($header) ] = trim($value); } else if( strpos($rheader, 'HTTP') > -1) { list(,$status, $status_name) = preg_split('|\s+|', $rheader); $ret->headers[ 'Status' ] = $status; $ret->headers[ 'Status-Name' ] = $status_name; } } return $ret; } ?>