2 namespace TYPO3\CMS\Core\Http;
83 $clonedObject = clone $this;
84 $clonedObject->protocolVersion = $version;
128 return isset($this->lowercasedHeaderNames[strtolower($name)]);
150 $header = $this->lowercasedHeaderNames[strtolower($name)];
151 $headerValue = $this->headers[$header];
152 if (is_array($headerValue)) {
155 return array($headerValue);
181 if (empty($headerValue)) {
184 return implode(
',', $headerValue);
204 if (is_string($value)) {
205 $value = array($value);
209 throw new \InvalidArgumentException(
'Invalid header value for header "' . $name .
'"". The value must be a string or an array of strings.', 1436717266);
214 $lowercasedHeaderName = strtolower($name);
216 $clonedObject = clone $this;
217 $clonedObject->headers[$name] = $value;
218 $clonedObject->lowercasedHeaderNames[$lowercasedHeaderName] = $name;
219 return $clonedObject;
240 if (is_string($value)) {
241 $value = array($value);
244 throw new \InvalidArgumentException(
'Invalid header value for header "' . $name .
'". The header value must be a string or array of strings', 1436717267);
251 $name = $this->lowercasedHeaderNames[strtolower($name)];
252 $clonedObject = clone $this;
253 $clonedObject->headers[$name] = array_merge($this->headers[$name], $value);
254 return $clonedObject;
275 $lowercasedHeader = strtolower($name);
276 $name = $this->lowercasedHeaderNames[$lowercasedHeader];
277 $clonedObject = clone $this;
278 unset($clonedObject->headers[$name], $clonedObject->lowercasedHeaderNames[$lowercasedHeader]);
279 return $clonedObject;
307 $clonedObject = clone $this;
308 $clonedObject->body =
$body;
309 return $clonedObject;
320 foreach ($headers as $name => $headerValues) {
323 array_walk($headerValues,
function ($value, $key,
Message $messageObject) {
325 throw new \InvalidArgumentException(
'Invalid header value for header "' . $key .
'"', 1436717268);
342 foreach ($originalHeaders as $header => $value) {
343 if (!is_string($header) || (!is_array($value) && !is_string($value))) {
346 if (!is_array($value)) {
347 $value = array($value);
349 $headerNames[strtolower($header)] = $header;
352 return array($headerNames,
$headers);
363 return array_reduce($data,
function ($original, $item) {
364 return is_string($item) ? $original :
false;
377 array_walk($values,
function ($value, $key,
Message $messageObject) {
379 throw new \InvalidArgumentException(
'Invalid header value for header "' . $key .
'"', 1436717269);
402 $value = (string)$value;
403 $length = strlen($value);
405 for ($i = 0; $i < $length; $i += 1) {
406 $ascii = ord($value[$i]);
410 $lf = ord($value[$i + 1]);
411 $ws = ord($value[$i + 2]);
412 if ($lf === 10 && in_array($ws, [9, 32],
true)) {
413 $string .= $value[$i] . $value[$i + 1];
424 if (($ascii < 32 && $ascii !== 9) || $ascii === 127 || $ascii > 254) {
428 $string .= $value[$i];
443 if (!preg_match(
'/^[a-zA-Z0-9\'`#$%&*+.^_|~!-]+$/', $name)) {
444 throw new \InvalidArgumentException(
'Invalid header name, given "' . $name .
'"', 1436717270);
461 $value = (string)$value;
467 if (preg_match(
"#(?:(?:(?<!\r)\n)|(?:\r(?!\n))|(?:\r\n(?![ \t])))#", $value)) {
471 $length = strlen($value);
472 for ($i = 0; $i < $length; $i += 1) {
473 $ascii = ord($value[$i]);
482 if (($ascii < 32 && ! in_array($ascii, [9, 10, 13],
true)) || $ascii === 127 || $ascii > 254) {