WpOrg\Requests

Cookie::path_matches()publicWP 1.0

Check if a cookie is valid for a given path

From the path-match check in RFC 6265 section 5.1.4

Method of the class: Cookie{}

No Hooks.

Return

true|false. Whether the cookie is valid for the given path

Usage

$Cookie = new Cookie();
$Cookie->path_matches( $request_path );
$request_path(string) (required)
Path to check

Cookie::path_matches() code WP 6.6.2

public function path_matches($request_path) {
	if (empty($request_path)) {
		// Normalize empty path to root
		$request_path = '/';
	}

	if (!isset($this->attributes['path'])) {
		// Cookies created manually; cookies created by Requests will set
		// the path to the requested path
		return true;
	}

	if (is_scalar($request_path) === false) {
		return false;
	}

	$cookie_path = $this->attributes['path'];

	if ($cookie_path === $request_path) {
		// The cookie-path and the request-path are identical.
		return true;
	}

	if (strlen($request_path) > strlen($cookie_path) && substr($request_path, 0, strlen($cookie_path)) === $cookie_path) {
		if (substr($cookie_path, -1) === '/') {
			// The cookie-path is a prefix of the request-path, and the last
			// character of the cookie-path is %x2F ("/").
			return true;
		}

		if (substr($request_path, strlen($cookie_path), 1) === '/') {
			// The cookie-path is a prefix of the request-path, and the
			// first character of the request-path that is not included in
			// the cookie-path is a %x2F ("/") character.
			return true;
		}
	}

	return false;
}