]> git.mxchange.org Git - friendica.git/blobdiff - src/Network/CurlResult.php
Merge pull request #8037 from MrPetovan/bug/notices
[friendica.git] / src / Network / CurlResult.php
index a8dd3dd63161ab8a82ff0570d6b8cedc190190a9..5b77c3963c7e69e7593107f0c69f8d6d5f2d7877 100644 (file)
@@ -26,6 +26,11 @@ class CurlResult
         */
        private $header;
 
+       /**
+        * @var array the HTTP headers of the Curl call
+        */
+       private $header_fields;
+
        /**
         * @var boolean true (if HTTP 2xx result) or false
         */
@@ -129,6 +134,7 @@ class CurlResult
 
                $this->body = substr($result, strlen($header));
                $this->header = $header;
+               $this->header_fields = []; // Is filled on demand
        }
 
        private function checkSuccess()
@@ -161,7 +167,7 @@ class CurlResult
                }
 
                if ($this->returnCode == 301 || $this->returnCode == 302 || $this->returnCode == 303 || $this->returnCode== 307) {
-                       $redirect_parts = parse_url(defaults($this->info, 'redirect_url', ''));
+                       $redirect_parts = parse_url($this->info['redirect_url'] ?? '');
                        if (empty($redirect_parts)) {
                                $redirect_parts = [];
                        }
@@ -173,7 +179,7 @@ class CurlResult
                                }
                        }
 
-                       $parts = parse_url(defaults($this->info, 'url', ''));
+                       $parts = parse_url($this->info['url'] ?? '');
                        if (empty($parts)) {
                                $parts = [];
                        }
@@ -243,6 +249,8 @@ class CurlResult
                if (isset($headers[$field])) {
                        return $headers[$field];
                }
+
+               return '';
        }
 
        /**
@@ -252,7 +260,7 @@ class CurlResult
         *
         * @return boolean "true" if header exists
         */
-       public function headerExists(string $field)
+       public function inHeader(string $field)
        {
                $field = strtolower(trim($field));
 
@@ -268,20 +276,21 @@ class CurlResult
         */
        public function getHeaderArray()
        {
-               $headers = [];
+               if (!empty($this->header_fields)) {
+                       return $this->header_fields;
+               }
+
+               $this->header_fields = [];
 
-               $lines = explode("\n", $this->header);
+               $lines = explode("\n", trim($this->header));
                foreach ($lines as $line) {
                        $parts = explode(':', $line);
                        $headerfield = strtolower(trim(array_shift($parts)));
                        $headerdata = trim(implode(':', $parts));
-
-                       if (!empty($headerdata)) {
-                               $headers[$headerfield] = $headerdata;
-                       }
+                       $this->header_fields[$headerfield] = $headerdata;
                }
 
-               return $headers;
+               return $this->header_fields;
        }
 
        /**