function _shortcode_parse_attrs in Shortcode 7
Same name and namespace in other branches
- 6 shortcode.module \_shortcode_parse_attrs()
- 7.2 shortcode.module \_shortcode_parse_attrs()
Retrieve all attributes from the shortcodes tag.
The attributes list has the attribute name as the key and the value of the attribute as the value in the key/value pair. This allows for easier retrieval of the attributes, since all attributes have to be known.
@since 2.5
Parameters
string $text:
Return value
array List of attributes and their value.
1 call to _shortcode_parse_attrs()
- _shortcode_process_tag in ./
shortcode.module - Regular Expression callable for do_shortcode() for calling shortcode hook.
File
- ./
shortcode.module, line 468
Code
function _shortcode_parse_attrs($text) {
$atts = array();
$pattern = '/(\\w+)\\s*=\\s*"([^"]*)"(?:\\s|$)|(\\w+)\\s*=\\s*\'([^\']*)\'(?:\\s|$)|(\\w+)\\s*=\\s*([^\\s\'"]+)(?:\\s|$)|"([^"]*)"(?:\\s|$)|(\\S+)(?:\\s|$)/';
$text = preg_replace("/[\\x{00a0}\\x{200b}]+/u", " ", $text);
if (preg_match_all($pattern, $text, $match, PREG_SET_ORDER)) {
foreach ($match as $m) {
if (!empty($m[1])) {
$atts[strtolower($m[1])] = stripcslashes($m[2]);
}
elseif (!empty($m[3])) {
$atts[strtolower($m[3])] = stripcslashes($m[4]);
}
elseif (!empty($m[5])) {
$atts[strtolower($m[5])] = stripcslashes($m[6]);
}
elseif (isset($m[7]) and strlen($m[7])) {
$atts[] = stripcslashes($m[7]);
}
elseif (isset($m[8])) {
$atts[] = stripcslashes($m[8]);
}
}
}
else {
$atts = ltrim($text);
}
return $atts;
}