From 2369305ad8f54b69e5ff751609dbb077c77ef4bb Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Sat, 22 Mar 2014 08:22:24 -0400 Subject: [PATCH] Merge pull request #167 from Steffen185/allow_url_fopen_off --- program/steps/utils/modcss.inc | 45 +++++++++++++++++++++++++++++++-------------- 1 files changed, 31 insertions(+), 14 deletions(-) diff --git a/program/steps/utils/modcss.inc b/program/steps/utils/modcss.inc index c8a7cb5..749f018 100644 --- a/program/steps/utils/modcss.inc +++ b/program/steps/utils/modcss.inc @@ -33,24 +33,41 @@ exit("Invalid URL"); } -if (!ini_get('allow_url_fopen')) { +if (ini_get('allow_url_fopen')) { + $scheme = strtolower($matches[1]); + $options = array( + $scheme => array( + 'method' => 'GET', + 'timeout' => 15, + ) + ); + + $context = stream_context_create($options); + $source = @file_get_contents($realurl, false, $context); + + // php.net/manual/en/reserved.variables.httpresponseheader.php + $headers = implode("\n", (array)$http_response_header); +} else if (function_exists('curl_init')) { + $curl = curl_init($realurl); + curl_setopt($curl, CURLOPT_TIMEOUT, 15); + curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 15); + curl_setopt($curl, CURLOPT_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS); + curl_setopt($curl, CURLOPT_ENCODING, ''); + curl_setopt($curl, CURLOPT_HEADER, true); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); + $data = curl_exec($curl); + + if ($data !== false) { + list($headers, $source) = explode("\r\n\r\n", $data, 2); + } else { + $headers = false; + $source = false; + } +} else { header('HTTP/1.1 403 Forbidden'); exit("HTTP connections disabled"); } -$scheme = strtolower($matches[1]); -$options = array( - $scheme => array( - 'method' => 'GET', - 'timeout' => 15, - ) -); - -$context = stream_context_create($options); -$source = @file_get_contents($realurl, false, $context); - -// php.net/manual/en/reserved.variables.httpresponseheader.php -$headers = implode("\n", (array)$http_response_header); $ctype = '~Content-Type:\s+text/(css|plain)~i'; if ($source !== false && preg_match($ctype, $headers)) { -- Gitblit v1.9.1