Requests_Cookie::normalize_attribute

Advertisement

Summery Summery

Parse an individual cookie attribute

Syntax Syntax

Requests_Cookie::normalize_attribute( string $name, string|boolean $value )

Description Description

Handles parsing individual attributes from the cookie values.

Parameters Parameters

$name

(string) (Required) Attribute name

$value

(string|boolean) (Required) Attribute value (string value, or true if empty/flag)

Return Return

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

Source Source

File: wp-includes/Requests/Cookie.php

	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;
		}
	}

Advertisement

Advertisement

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.