[BUGFIX] Fix T3editor after PSR-7 change
[Packages/TYPO3.CMS.git] / typo3 / sysext / openid / lib / php-openid / Auth / OpenID / KVForm.php
1 <?php
2
3 /**
4 * OpenID protocol key-value/comma-newline format parsing and
5 * serialization
6 *
7 * PHP versions 4 and 5
8 *
9 * LICENSE: See the COPYING file included in this distribution.
10 *
11 * @access private
12 * @package OpenID
13 * @author JanRain, Inc. <openid@janrain.com>
14 * @copyright 2005-2008 Janrain, Inc.
15 * @license http://www.apache.org/licenses/LICENSE-2.0 Apache
16 */
17
18 /**
19 * Container for key-value/comma-newline OpenID format and parsing
20 */
21 class Auth_OpenID_KVForm {
22 /**
23 * Convert an OpenID colon/newline separated string into an
24 * associative array
25 *
26 * @static
27 * @access private
28 */
29 static function toArray($kvs, $strict=false)
30 {
31 $lines = explode("\n", $kvs);
32
33 $last = array_pop($lines);
34 if ($last !== '') {
35 array_push($lines, $last);
36 if ($strict) {
37 return false;
38 }
39 }
40
41 $values = array();
42
43 for ($lineno = 0; $lineno < count($lines); $lineno++) {
44 $line = $lines[$lineno];
45 $kv = explode(':', $line, 2);
46 if (count($kv) != 2) {
47 if ($strict) {
48 return false;
49 }
50 continue;
51 }
52
53 $key = $kv[0];
54 $tkey = trim($key);
55 if ($tkey != $key) {
56 if ($strict) {
57 return false;
58 }
59 }
60
61 $value = $kv[1];
62 $tval = trim($value);
63 if ($tval != $value) {
64 if ($strict) {
65 return false;
66 }
67 }
68
69 $values[$tkey] = $tval;
70 }
71
72 return $values;
73 }
74
75 /**
76 * Convert an array into an OpenID colon/newline separated string
77 *
78 * @static
79 * @access private
80 */
81 static function fromArray($values)
82 {
83 if ($values === null) {
84 return null;
85 }
86
87 ksort($values);
88
89 $serialized = '';
90 foreach ($values as $key => $value) {
91 if (is_array($value)) {
92 list($key, $value) = array($value[0], $value[1]);
93 }
94
95 if (strpos($key, ':') !== false) {
96 return null;
97 }
98
99 if (strpos($key, "\n") !== false) {
100 return null;
101 }
102
103 if (strpos($value, "\n") !== false) {
104 return null;
105 }
106 $serialized .= "$key:$value\n";
107 }
108 return $serialized;
109 }
110 }
111