Public Member Functions | Data Fields

ilHttpRequest Class Reference

Public Member Functions

 _scan_url ()
 ilHttpRequest ($url)
 downloadToString ()

Data Fields

 $_fp
 $_url
 $_host
 $_protocol
 $_uri
 $_port

Detailed Description

Definition at line 34 of file class.ilHttpRequest.php.


Member Function Documentation

ilHttpRequest::_scan_url (  ) 

Definition at line 44 of file class.ilHttpRequest.php.

References $host, and $pos.

Referenced by ilHttpRequest().

        {
                $req = $this->_url;
                
                $pos = strpos($req, '://');
                $this->_protocol = strtolower(substr($req, 0, $pos));
                
                $req = substr($req, $pos+3);
                $pos = strpos($req, '/');
                if($pos === false) $pos = strlen($req);
                $host = substr($req, 0, $pos);
                
                if(strpos($host, ':') !== false)
                {
                        list($this->_host, $this->_port) = explode(':', $host);
                }
                else
                {
                        $this->_host = $host;
                        $this->_port = ($this->_protocol == 'https') ? 443 : 80;
                }
                
                $this->_uri = substr($req, $pos);
                if($this->_uri == '') $this->_uri = '/';
        }

Here is the caller graph for this function:

ilHttpRequest::downloadToString (  ) 

Definition at line 78 of file class.ilHttpRequest.php.

References $pos, and ilHttpRequest().

        {
                $crlf = "\r\n";
                
                // generate request
                $req = 'GET ' . $this->_uri . ' HTTP/1.0' . $crlf
                . 'Host: ' . $this->_host . $crlf
                .  $crlf;

                // fetch
                $this->_fp = fsockopen(($this->_protocol == 'https' ? 'ssl://' : '') . $this->_host, $this->_port);
                fwrite($this->_fp, $req);
                while(is_resource($this->_fp) && $this->_fp && !feof($this->_fp))
                {
                        $response .= fread($this->_fp, 1024);
                }
                fclose($this->_fp);
                
                // split header and body
                $pos = strpos($response, $crlf . $crlf);
                if($pos === false) return($response);
                $header = substr($response, 0, $pos);
                $body = substr($response, $pos + 2 * strlen($crlf));
                
                // parse headers
                $headers = array();
                $lines = explode($crlf, $header);
                foreach($lines as $line)
                {
                        if(($pos = strpos($line, ':')) !== false)
                        {
                                $headers[strtolower(trim(substr($line, 0, $pos)))] = trim(substr($line, $pos+1));
                        }
                }
                
                // redirection?
                if(isset($headers['location']))
                {
                        $http = new ilHttpRequest($headers['location']);
                        return($http->DownloadToString($http));
                }
                else
                {
                        return($body);
                }
        }

Here is the call graph for this function:

ilHttpRequest::ilHttpRequest ( url  ) 

Definition at line 71 of file class.ilHttpRequest.php.

References _scan_url().

Referenced by downloadToString().

        {
                $this->_url = $url;
                $this->_scan_url();
        }

Here is the call graph for this function:

Here is the caller graph for this function:


Field Documentation

ilHttpRequest::$_fp

Definition at line 36 of file class.ilHttpRequest.php.

ilHttpRequest::$_host

Definition at line 38 of file class.ilHttpRequest.php.

ilHttpRequest::$_port

Definition at line 41 of file class.ilHttpRequest.php.

ilHttpRequest::$_protocol

Definition at line 39 of file class.ilHttpRequest.php.

ilHttpRequest::$_uri

Definition at line 40 of file class.ilHttpRequest.php.

ilHttpRequest::$_url

Definition at line 37 of file class.ilHttpRequest.php.


The documentation for this class was generated from the following file: