function _parseAttributes($attributes)
    {
        if (is_array($attributes)) {
            $ret = array();
            foreach ($attributes as $key => $value) {
                if (is_int($key)) {
                    $key = $value = strtolower($value);
                } else {
                    $key = strtolower($key);
                }
                $ret[$key] = $value;
            }
            return $ret;

        } elseif (is_string($attributes)) {
            $preg = "/(([A-Za-z_:]|[^\\x00-\\x7F])([A-Za-z0-9_:.-]|[^\\x00-\\x7F])*)" .
                "([ \\n\\t\\r]+)?(=([ \\n\\t\\r]+)?(\"[^\"]*\"|'[^']*'|[^ \\n\\t\\r]*))?/";
            if (preg_match_all($preg, $attributes, $regs)) {
                for ($counter=0; $counter<count($regs[1]); $counter++) {
                    $name  = $regs[1][$counter];
                    $check = $regs[0][$counter];
                    $value = $regs[7][$counter];
                    if (trim($name) == trim($check)) {
                        $arrAttr[strtolower(trim($name))] = strtolower(trim($name));
                    } else {
                        if (substr($value, 0, 1) == "\"" || substr($value, 0, 1) == "'") {
                            $value = substr($value, 1, -1);
                        }
                        $arrAttr[strtolower(trim($name))] = trim($value);
                    }
                }
                return $arrAttr;
            }
        }
    }
function _parseAttributes($attributes)
    {
        if (is_array($attributes)) {
            $ret = array();
            foreach ($attributes as $key => $value) {
                if (is_int($key)) {
                    $key = $value = strtolower($value);
                } else {
                    $key = strtolower($key);
                }
                $ret[$key] = $value;
            }
            return $ret;

        } elseif (is_string($attributes)) {
            $preg = "/(([A-Za-z_:]|[^\\x00-\\x7F])([A-Za-z0-9_:.-]|[^\\x00-\\x7F])*)" .
                "([ \\n\\t\\r]+)?(=([ \\n\\t\\r]+)?(\"[^\"]*\"|'[^']*'|[^ \\n\\t\\r]*))?/";
            if (preg_match_all($preg, $attributes, $regs)) {
                for ($counter=0; $counter<count($regs[1]); $counter++) {
                    $name  = $regs[1][$counter];
                    $check = $regs[0][$counter];
                    $value = $regs[7][$counter];
                    if (trim($name) == trim($check)) {
                        $arrAttr[strtolower(trim($name))] = strtolower(trim($name));
                    } else {
                        if (substr($value, 0, 1) == "\"" || substr($value, 0, 1) == "'") {
                            $value = substr($value, 1, -1);
                        }
                        $arrAttr[strtolower(trim($name))] = trim($value);
                    }
                }
                return $arrAttr;
            }
        }
    }
function _parseAttributes ( $ attributes ) { if ( is_array ( $ attributes ) ) { $ ret = array ( ) ; foreach ( $ attributes as $ key => $ value ) { if ( is_int ( $ key ) ) { $ key = $ value = strtolower ( $ value ) ; } else { $ key = strtolower ( $ key ) ; } $ ret [ $ key ] = $ value ; } return $ ret ; } elseif ( is_string ( $ attributes ) ) { $ preg = "/(([A-Za-z_:]|[^\\x00-\\x7F])([A-Za-z0-9_:.-]|[^\\x00-\\x7F])*)" . "([ \\n\\t\\r]+)?(=([ \\n\\t\\r]+)?(\"[^\"]*\"|'[^']*'|[^ \\n\\t\\r]*))?/" ; if ( preg_match_all ( $ preg , $ attributes , $ regs ) ) { for ( $ counter = 0 ; $ counter < count ( $ regs [ 1 ] ) ; $ counter ++ ) { $ name = $ regs [ 1 ] [ $ counter ] ; $ check = $ regs [ 0 ] [ $ counter ] ; $ value = $ regs [ 7 ] [ $ counter ] ; if ( trim ( $ name ) == trim ( $ check ) ) { $ arrAttr [ strtolower ( trim ( $ name ) ) ] = strtolower ( trim ( $ name ) ) ; } else { if ( substr ( $ value , 0 , 1 ) == "\"" || substr ( $ value , 0 , 1 ) == "'" ) { $ value = substr ( $ value , 1 , - 1 ) ; } $ arrAttr [ strtolower ( trim ( $ name ) ) ] = trim ( $ value ) ; } } return $ arrAttr ; } } }
Returns a valid atrributes array from either a string or array
@param    mixed   $attributes     Either a typical HTML attribute string or an associative array
@access   private
Returns a valid atrributes array from either a string or array