diff options
author | Mario Vavti <mario@mariovavti.com> | 2017-03-08 09:39:46 +0100 |
---|---|---|
committer | Mario Vavti <mario@mariovavti.com> | 2017-03-08 09:39:46 +0100 |
commit | bc2b948f1f6e62b1c277a4042200bb6678956f3f (patch) | |
tree | 8586c30e495607eee23f16c0aad40974f0711275 /Zotlabs/Web/HTTPHeaders.php | |
parent | 23e3e2c50499fab52769929a448e73012fd915af (diff) | |
parent | ff9442474d07cce24c8f66db39ec34471c3874a2 (diff) | |
download | volse-hubzilla-2.2.tar.gz volse-hubzilla-2.2.tar.bz2 volse-hubzilla-2.2.zip |
Merge branch 2.2RC2.2
Diffstat (limited to 'Zotlabs/Web/HTTPHeaders.php')
-rw-r--r-- | Zotlabs/Web/HTTPHeaders.php | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/Zotlabs/Web/HTTPHeaders.php b/Zotlabs/Web/HTTPHeaders.php new file mode 100644 index 000000000..1e4c1bf84 --- /dev/null +++ b/Zotlabs/Web/HTTPHeaders.php @@ -0,0 +1,46 @@ +<?php + +namespace Zotlabs\Web; + +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; + } +} + + + |