public function parseAttr($str, $name = null)
{
$regex = '/\\s+(?>(?P<name>[\\w-]+)\\s*)=(?>\\s*)([\\"\'])(?P<value>(?:(?!\\2).)*)\\2/is';
$array = [];
if (preg_match_all($regex, $str, $matches, PREG_SET_ORDER)) {
foreach ($matches as $match) {
$array[$match['name']] = $match['value'];
}
unset($matches);
}
if (!empty($name) && isset($array[$name])) {
return $array[$name];
} else {
return $array;
}
}