Files
szkoleniauryzaj.pl/wp-content/plugins/wp-optimize/vendor/rosell-dk/htaccess-capability-tester/src/HttpResponse.php
2024-11-10 21:08:49 +01:00

76 lines
2.0 KiB
PHP

<?php
namespace HtaccessCapabilityTester;
/**
* Class for holding properties of a HttpResponse
*
* @package HtaccessCapabilityTester
* @author Bjørn Rosell <it@rosell.dk>
* @since Class available since 0.7
*/
class HttpResponse
{
/* @var string the body of the response */
public $body;
/* @var string the status code of the response */
public $statusCode;
/* @var array the response headers keyed by lowercased field name */
public $headersMapLowerCase;
/**
* Constructor.
*
* @param string $body
* @param string $statusCode
* @param array $headersMap Map of headers, keyed by field name.
* There is only one value (string) for each key.
* If there are multiple values, they must be separated by comma
*
* @return void
*/
public function __construct($body, $statusCode, $headersMap)
{
$this->body = $body;
$this->statusCode = $statusCode;
$this->headersMapLowerCase = array_change_key_case($headersMap, CASE_LOWER);
}
/**
* Check if the response has a header
*
* @param string $fieldName
* @return bool
*/
public function hasHeader($fieldName)
{
$fieldName = strtolower($fieldName);
return (isset($this->headersMapLowerCase[$fieldName]));
}
/**
* Check if the response has a header with a given value
*
* @param string $fieldName
* @param string $fieldValue
* @return bool
*/
public function hasHeaderValue($fieldName, $fieldValue)
{
$fieldName = strtolower($fieldName);
if (!isset($this->headersMapLowerCase[$fieldName])) {
return false;
}
$values = explode(',', $this->headersMapLowerCase[$fieldName]);
foreach ($values as $value) {
if (trim($value) == $fieldValue) {
return true;
}
}
return false;
}
}