fix: http.core.HttpRequest (now manages both Apache/nginx, especially php-fpm because the function 'getallheaders()' is not available, so gess it from (solution from http://php.net/manual/en/function.getallheaders.php\#84262))

This commit is contained in:
xdrm-brackets 2018-02-07 14:52:21 +01:00
parent f1c338853f
commit 0c0f34c7d4
1 changed files with 27 additions and 1 deletions

View File

@ -42,7 +42,7 @@
/* [2] Define headers
=========================================================*/
$this->headers = \getallheaders();
$this->headers = self::getallheaders_adapter();
/* [3] Define default datasets (GET, POST)
@ -201,4 +201,30 @@
public function HEADERS(){ return $this->headers; }
public function METHOD(){ return $this->method; }
public function URI(){ return $this->uri; }
private static function getallheaders_adapter(){
/* (1) If exists -> use it
---------------------------------------------------------*/
if( function_exists('getallheaders') )
return getallheaders();
/* (2) If does not (php-fpm)
---------------------------------------------------------*/
/* (1) init. variables */
$fetched_headers = [];
/* (2) Get all headers from $_SERVER */
foreach($_SERVER as $hname=>$hvalue ){
// {1} Store only if begins with 'HTTP_' //
if( substr($hname,0,5) == 'HTTP_' )
$fetched_headers[ str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($hname,5)))))] = $hvalue;
}
/* (3) Return created headers */
return $fetched_headers;
}
}