Overview
  • Package
  • Class

Packages

  • Klarna
    • Checkout
  • Payment
    • Klarna
      • HTTP
      • Interfaces
      • Unit
        • Tests

Classes

  • Klarna_Checkout_HTTP_CURLFactory
  • Klarna_Checkout_HTTP_Transport
 1 <?php
 2 /**
 3  * Copyright 2015 Klarna AB
 4  *
 5  * Licensed under the Apache License, Version 2.0 (the "License");
 6  * you may not use this file except in compliance with the License.
 7  * You may obtain a copy of the License at
 8  *
 9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * File containing the Klarna_Checkout_HTTP_CURLHeaders class
18  *
19  * PHP version 5.3
20  *
21  * @category   Payment
22  * @package    Payment_Klarna
23  * @subpackage HTTP
24  * @author     Klarna <support@klarna.com>
25  * @copyright  2015 Klarna AB
26  * @license    http://www.apache.org/licenses/LICENSE-2.0 Apache license v2.0
27  * @link       http://developers.klarna.com/
28  */
29 
30 /**
31  * A simple class handling the header callback for cURL.
32  *
33  * @category   Payment
34  * @package    Payment_Klarna
35  * @subpackage HTTP
36  * @author     Klarna <support@klarna.com>
37  * @copyright  2015 Klarna AB
38  * @license    http://www.apache.org/licenses/LICENSE-2.0 Apache license v2.0
39  * @link       http://developers.klarna.com/
40  */
41 class Klarna_Checkout_HTTP_CURLHeaders
42 {
43     /**
44      * Response headers, cleared for each request.
45      *
46      * @var array
47      */
48     protected $headers;
49 
50     /**
51      * Initializes a new instance of the HTTP cURL class.
52      */
53     public function __construct()
54     {
55         $this->headers = array();
56     }
57 
58     /**
59      * Callback method to handle custom headers.
60      *
61      * @param resource $curl   the cURL resource.
62      * @param string   $header the header data.
63      *
64      * @return int the number of bytes handled.
65      */
66     public function processHeader($curl, $header)
67     {
68         $curl = null;
69         //TODO replace with regexp, e.g. /^([^:]+):([^:]*)$/ ?
70         $pos = strpos($header, ':');
71         // Didn't find a colon.
72         if ($pos === false) {
73             // Not real header, abort.
74             return strlen($header);
75         }
76 
77         $key = substr($header, 0, $pos);
78         $value = trim(substr($header, $pos+1));
79 
80         $this->headers[$key] = trim($value);
81 
82         return strlen($header);
83     }
84 
85     /**
86      * Gets the accumulated headers.
87      *
88      * @return array
89      */
90     public function getHeaders()
91     {
92         return $this->headers;
93     }
94 }
95 
API documentation generated by ApiGen