wp_kses_attr_parse() WordPress Function

The wp_kses_attr_parse() function is used to parse a string of HTML attributes. It is used to ensure that only valid attributes are allowed and to remove any invalid attributes. This function is used by the wp_kses() function.

wp_kses_attr_parse( string $element ) #

Finds all attributes of an HTML element.


Description

Does not modify input. May return "evil" output.

Based on wp_kses_split2() and wp_kses_attr().


Top ↑

Parameters

$element

(string)(Required)HTML element.


Top ↑

Return

(array|false) List of attributes found in the element. Returns false on failure.


Top ↑

Source

File: wp-includes/kses.php

function wp_kses_attr_parse( $element ) {
	$valid = preg_match( '%^(<\s*)(/\s*)?([a-zA-Z0-9]+\s*)([^>]*)(>?)$%', $element, $matches );
	if ( 1 !== $valid ) {
		return false;
	}

	$begin  = $matches[1];
	$slash  = $matches[2];
	$elname = $matches[3];
	$attr   = $matches[4];
	$end    = $matches[5];

	if ( '' !== $slash ) {
		// Closing elements do not get parsed.
		return false;
	}

	// Is there a closing XHTML slash at the end of the attributes?
	if ( 1 === preg_match( '%\s*/\s*$%', $attr, $matches ) ) {
		$xhtml_slash = $matches[0];
		$attr        = substr( $attr, 0, -strlen( $xhtml_slash ) );
	} else {
		$xhtml_slash = '';
	}

	// Split it.
	$attrarr = wp_kses_hair_parse( $attr );
	if ( false === $attrarr ) {
		return false;
	}

	// Make sure all input is returned by adding front and back matter.
	array_unshift( $attrarr, $begin . $slash . $elname );
	array_push( $attrarr, $xhtml_slash . $end );

	return $attrarr;
}


Top ↑

Changelog

Changelog
VersionDescription
4.2.3Introduced.

The content displayed on this page has been created in part by processing WordPress source code files which are made available under the GPLv2 (or a later version) license by theĀ Free Software Foundation. In addition to this, the content includes user-written examples and information. All material is subject to review and curation by the WPPaste.com community.