PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.20.0
GiveWP – Donation Plugin and Fundraising Platform v2.20.0
4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / vendor / symfony / http-foundation / AcceptHeaderItem.php
give / vendor / symfony / http-foundation Last commit date
Exception 4 years ago File 4 years ago Session 4 years ago Tests 4 years ago AcceptHeader.php 4 years ago AcceptHeaderItem.php 4 years ago ApacheRequest.php 4 years ago BinaryFileResponse.php 4 years ago Cookie.php 4 years ago ExpressionRequestMatcher.php 4 years ago FileBag.php 4 years ago HeaderBag.php 4 years ago IpUtils.php 4 years ago JsonResponse.php 4 years ago LICENSE 4 years ago ParameterBag.php 4 years ago RedirectResponse.php 4 years ago Request.php 4 years ago RequestMatcher.php 4 years ago RequestMatcherInterface.php 4 years ago RequestStack.php 4 years ago Response.php 4 years ago ResponseHeaderBag.php 4 years ago ServerBag.php 4 years ago StreamedResponse.php 4 years ago
AcceptHeaderItem.php
209 lines
1 <?php
2
3 /*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12 namespace Symfony\Component\HttpFoundation;
13
14 /**
15 * Represents an Accept-* header item.
16 *
17 * @author Jean-François Simon <contact@jfsimon.fr>
18 */
19 class AcceptHeaderItem
20 {
21 private $value;
22 private $quality = 1.0;
23 private $index = 0;
24 private $attributes = [];
25
26 /**
27 * @param string $value
28 */
29 public function __construct($value, array $attributes = [])
30 {
31 $this->value = $value;
32 foreach ($attributes as $name => $value) {
33 $this->setAttribute($name, $value);
34 }
35 }
36
37 /**
38 * Builds an AcceptHeaderInstance instance from a string.
39 *
40 * @param string $itemValue
41 *
42 * @return self
43 */
44 public static function fromString($itemValue)
45 {
46 $bits = preg_split('/\s*(?:;*("[^"]+");*|;*(\'[^\']+\');*|;+)\s*/', $itemValue, 0, \PREG_SPLIT_NO_EMPTY | \PREG_SPLIT_DELIM_CAPTURE);
47 $value = array_shift($bits);
48 $attributes = [];
49
50 $lastNullAttribute = null;
51 foreach ($bits as $bit) {
52 if (($start = substr($bit, 0, 1)) === ($end = substr($bit, -1)) && ('"' === $start || '\'' === $start)) {
53 $attributes[$lastNullAttribute] = substr($bit, 1, -1);
54 } elseif ('=' === $end) {
55 $lastNullAttribute = $bit = substr($bit, 0, -1);
56 $attributes[$bit] = null;
57 } else {
58 $parts = explode('=', $bit);
59 $attributes[$parts[0]] = isset($parts[1]) && \strlen($parts[1]) > 0 ? $parts[1] : '';
60 }
61 }
62
63 return new self(($start = substr($value, 0, 1)) === ($end = substr($value, -1)) && ('"' === $start || '\'' === $start) ? substr($value, 1, -1) : $value, $attributes);
64 }
65
66 /**
67 * Returns header value's string representation.
68 *
69 * @return string
70 */
71 public function __toString()
72 {
73 $string = $this->value.($this->quality < 1 ? ';q='.$this->quality : '');
74 if (\count($this->attributes) > 0) {
75 $string .= ';'.implode(';', array_map(function ($name, $value) {
76 return sprintf(preg_match('/[,;=]/', $value) ? '%s="%s"' : '%s=%s', $name, $value);
77 }, array_keys($this->attributes), $this->attributes));
78 }
79
80 return $string;
81 }
82
83 /**
84 * Set the item value.
85 *
86 * @param string $value
87 *
88 * @return $this
89 */
90 public function setValue($value)
91 {
92 $this->value = $value;
93
94 return $this;
95 }
96
97 /**
98 * Returns the item value.
99 *
100 * @return string
101 */
102 public function getValue()
103 {
104 return $this->value;
105 }
106
107 /**
108 * Set the item quality.
109 *
110 * @param float $quality
111 *
112 * @return $this
113 */
114 public function setQuality($quality)
115 {
116 $this->quality = $quality;
117
118 return $this;
119 }
120
121 /**
122 * Returns the item quality.
123 *
124 * @return float
125 */
126 public function getQuality()
127 {
128 return $this->quality;
129 }
130
131 /**
132 * Set the item index.
133 *
134 * @param int $index
135 *
136 * @return $this
137 */
138 public function setIndex($index)
139 {
140 $this->index = $index;
141
142 return $this;
143 }
144
145 /**
146 * Returns the item index.
147 *
148 * @return int
149 */
150 public function getIndex()
151 {
152 return $this->index;
153 }
154
155 /**
156 * Tests if an attribute exists.
157 *
158 * @param string $name
159 *
160 * @return bool
161 */
162 public function hasAttribute($name)
163 {
164 return isset($this->attributes[$name]);
165 }
166
167 /**
168 * Returns an attribute by its name.
169 *
170 * @param string $name
171 * @param mixed $default
172 *
173 * @return mixed
174 */
175 public function getAttribute($name, $default = null)
176 {
177 return isset($this->attributes[$name]) ? $this->attributes[$name] : $default;
178 }
179
180 /**
181 * Returns all attributes.
182 *
183 * @return array
184 */
185 public function getAttributes()
186 {
187 return $this->attributes;
188 }
189
190 /**
191 * Set an attribute.
192 *
193 * @param string $name
194 * @param string $value
195 *
196 * @return $this
197 */
198 public function setAttribute($name, $value)
199 {
200 if ('q' === $name) {
201 $this->quality = (float) $value;
202 } else {
203 $this->attributes[$name] = (string) $value;
204 }
205
206 return $this;
207 }
208 }
209