mirror of
https://github.com/friendica/friendica
synced 2025-04-25 15:10:13 +00:00
port hubzillas OpenWebAuth - remote authentification
This commit is contained in:
parent
5fb8c758fd
commit
1c7f4e3c63
16 changed files with 1151 additions and 41 deletions
59
src/Util/HTTPHeaders.php
Normal file
59
src/Util/HTTPHeaders.php
Normal file
|
@ -0,0 +1,59 @@
|
|||
<?php
|
||||
/**
|
||||
* @file src/Util/HTTPHeaders.php
|
||||
*/
|
||||
namespace Friendica\Util;
|
||||
|
||||
class HTTPHeaders
|
||||
{
|
||||
private $in_progress = [];
|
||||
private $parsed = [];
|
||||
|
||||
function __construct($headers)
|
||||
{
|
||||
$lines = explode("\n", str_replace("\r", '', $headers));
|
||||
|
||||
if ($lines) {
|
||||
foreach ($lines as $line) {
|
||||
if (preg_match('/^\s+/', $line, $matches) && trim($line)) {
|
||||
if ($this->in_progress['k']) {
|
||||
$this->in_progress['v'] .= ' ' . ltrim($line);
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
if ($this->in_progress['k']) {
|
||||
$this->parsed[] = [$this->in_progress['k'] => $this->in_progress['v']];
|
||||
$this->in_progress = [];
|
||||
}
|
||||
|
||||
$this->in_progress['k'] = strtolower(substr($line, 0, strpos($line, ':')));
|
||||
$this->in_progress['v'] = ltrim(substr($line, strpos($line, ':') + 1));
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->in_progress['k']) {
|
||||
$this->parsed[] = [$this->in_progress['k'] => $this->in_progress['v']];
|
||||
$this->in_progress = [];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function fetch()
|
||||
{
|
||||
return $this->parsed;
|
||||
}
|
||||
|
||||
function fetcharr()
|
||||
{
|
||||
$ret = [];
|
||||
|
||||
if ($this->parsed) {
|
||||
foreach ($this->parsed as $x) {
|
||||
foreach ($x as $y => $z) {
|
||||
$ret[$y] = $z;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue