/** * Return an associative array of attribute names and values from * a partial tag string. Attribute names are forces to lowercase, * character references are decoded to UTF-8 text. * * @param string $text * @return array */ public static function decodeTagAttributes($text) { if (trim($text) == '') { return array(); } $attribs = array(); $pairs = array(); if (!preg_match_all(self::getAttribsRegex(), $text, $pairs, PREG_SET_ORDER)) { return $attribs; } foreach ($pairs as $set) { $attribute = strtolower($set[1]); $value = Sanitizer::getTagAttributeCallback($set); // Normalize whitespace $value = preg_replace('/[\\t\\r\\n ]+/', ' ', $value); $value = trim($value); // Decode character references $attribs[$attribute] = Sanitizer::decodeCharReferences($value); } return $attribs; }
/** * Return an associative array of attribute names and values from * a partial tag string. Attribute names are forces to lowercase, * character references are decoded to UTF-8 text. * * @param string * @return array */ function decodeTagAttributes($text) { $attribs = array(); if (trim($text) == '') { return $attribs; } if (!preg_match_all(MW_ATTRIBS_REGEX, $text, $pairs, PREG_SET_ORDER)) { return $attribs; } foreach ($pairs as $set) { $attribute = strtolower($set[1]); $value = Sanitizer::getTagAttributeCallback($set); $attribs[$attribute] = Sanitizer::decodeCharReferences($value); } return $attribs; }