WpOrg\Requests

Cookie::normalize_attribute()protectedWP 1.0

Parse an individual cookie attribute

Handles parsing individual attributes from the cookie values.

Method of the class: Cookie{}

No Hooks.

Return

Mixed. Value if available, or null if the attribute value is invalid (and should be skipped)

Usage

// protected - for code of main (parent) or child class
$result = $this->normalize_attribute( $name, $value );
$name(string) (required)
Attribute name
$value(string|int|true|false) (required)
Attribute value (string/integer value, or true if empty/flag)

Cookie::normalize_attribute() code WP 6.6.2

protected function normalize_attribute($name, $value) {
	switch (strtolower($name)) {
		case 'expires':
			// Expiration parsing, as per RFC 6265 section 5.2.1
			if (is_int($value)) {
				return $value;
			}

			$expiry_time = strtotime($value);
			if ($expiry_time === false) {
				return null;
			}

			return $expiry_time;

		case 'max-age':
			// Expiration parsing, as per RFC 6265 section 5.2.2
			if (is_int($value)) {
				return $value;
			}

			// Check that we have a valid age
			if (!preg_match('/^-?\d+$/', $value)) {
				return null;
			}

			$delta_seconds = (int) $value;
			if ($delta_seconds <= 0) {
				$expiry_time = 0;
			} else {
				$expiry_time = $this->reference_time + $delta_seconds;
			}

			return $expiry_time;

		case 'domain':
			// Domains are not required as per RFC 6265 section 5.2.3
			if (empty($value)) {
				return null;
			}

			// Domain normalization, as per RFC 6265 section 5.2.3
			if ($value[0] === '.') {
				$value = substr($value, 1);
			}

			return $value;

		default:
			return $value;
	}
}