From 06ea39aed597f94b8a754b05ca60d005167367b7 Mon Sep 17 00:00:00 2001 From: Cash Costello Date: Sun, 11 Dec 2011 07:46:10 -0500 Subject: initial commmit --- vendors/php-openid/Auth/OpenID/Parse.php | 377 +++++++++++++++++++++++++++++++ 1 file changed, 377 insertions(+) create mode 100644 vendors/php-openid/Auth/OpenID/Parse.php (limited to 'vendors/php-openid/Auth/OpenID/Parse.php') diff --git a/vendors/php-openid/Auth/OpenID/Parse.php b/vendors/php-openid/Auth/OpenID/Parse.php new file mode 100644 index 000000000..c81cb0103 --- /dev/null +++ b/vendors/php-openid/Auth/OpenID/Parse.php @@ -0,0 +1,377 @@ + tags + * in the head of HTML or XHTML documents and parses out their + * attributes according to the OpenID spec. It is a liberal parser, + * but it requires these things from the data in order to work: + * + * - There must be an open tag + * + * - There must be an open tag inside of the tag + * + * - Only s that are found inside of the tag are parsed + * (this is by design) + * + * - The parser follows the OpenID specification in resolving the + * attributes of the link tags. This means that the attributes DO + * NOT get resolved as they would by an XML or HTML parser. In + * particular, only certain entities get replaced, and href + * attributes do not get resolved relative to a base URL. + * + * From http://openid.net/specs.bml: + * + * - The openid.server URL MUST be an absolute URL. OpenID consumers + * MUST NOT attempt to resolve relative URLs. + * + * - The openid.server URL MUST NOT include entities other than &, + * <, >, and ". + * + * The parser ignores SGML comments and . Both kinds + * of quoting are allowed for attributes. + * + * The parser deals with invalid markup in these ways: + * + * - Tag names are not case-sensitive + * + * - The tag is accepted even when it is not at the top level + * + * - The tag is accepted even when it is not a direct child of + * the tag, but a tag must be an ancestor of the + * tag + * + * - tags are accepted even when they are not direct children + * of the tag, but a tag must be an ancestor of the + * tag + * + * - If there is no closing tag for an open or tag, the + * remainder of the document is viewed as being inside of the + * tag. If there is no closing tag for a tag, the link tag is + * treated as a short tag. Exceptions to this rule are that + * closes and or closes + * + * - Attributes of the tag are not required to be quoted. + * + * - In the case of duplicated attribute names, the attribute coming + * last in the tag will be the value returned. + * + * - Any text that does not parse as an attribute within a link tag + * will be ignored. (e.g. will + * ignore pumpkin) + * + * - If there are more than one or tag, the parser only + * looks inside of the first one. + * + * - The contents of