function downloadToString() { $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; } }
/** * Check latex cgi script * * @param string latex cgi url * @return boolean true -> OK | false -> not OK */ function testLatex($a_latex_url) { // latex is optional, so empty path is ok if (trim($a_latex_url) == "") { return ""; } // open the URL include_once "./setup/classes/class.ilHttpRequest.php"; $http = new ilHttpRequest(ilUtil::stripSlashes($a_latex_url) . "?x_0"); $result = @$http->downloadToString(); if (strpos(substr($result, 0, 5), "PNG") !== FALSE || strpos(substr($result, 0, 5), "GIF") !== FALSE) { return ""; } else { return "check_failed_latex"; } }