function attributesToString($attributes, $sort = true, $multiline = false, 
        $indent = '    ', $linebreak = "\n", $entities = XML_UTIL_ENTITIES_XML)
    {
        /*
         * second parameter may be an array
         */
        if (is_array($sort)) {
            if (isset($sort['multiline'])) {
                $multiline = $sort['multiline'];
            }
            if (isset($sort['indent'])) {
                $indent = $sort['indent'];
            }
            if (isset($sort['linebreak'])) {
                $multiline = $sort['linebreak'];
            }
            if (isset($sort['entities'])) {
                $entities = $sort['entities'];
            }
            if (isset($sort['sort'])) {
                $sort = $sort['sort'];
            } else {
                $sort = true;
            }
        }
        $string = '';
        if (is_array($attributes) && !empty($attributes)) {
            if ($sort) {
                ksort($attributes);
            }
            if ( !$multiline || count($attributes) == 1) {
                foreach ($attributes as $key => $value) {
                    if ($entities != XML_UTIL_ENTITIES_NONE) {
                        if ($entities === XML_UTIL_CDATA_SECTION) {
                            $entities = XML_UTIL_ENTITIES_XML;
                        }
                        $value = XML_Util::replaceEntities($value, $entities);
                    }
                    $string .= ' ' . $key . '="' . $value . '"';
                }
            } else {
                $first = true;
                foreach ($attributes as $key => $value) {
                    if ($entities != XML_UTIL_ENTITIES_NONE) {
                        $value = XML_Util::replaceEntities($value, $entities);
                    }
                    if ($first) {
                        $string .= ' ' . $key . '="' . $value . '"';
                        $first   = false;
                    } else {
                        $string .= $linebreak . $indent . $key . '="' . $value . '"';
                    }
                }
            }
        }
        return $string;
    }
function attributesToString($attributes, $sort = true, $multiline = false, 
        $indent = '    ', $linebreak = "\n", $entities = XML_UTIL_ENTITIES_XML)
    {
        /*
         * second parameter may be an array
         */
        if (is_array($sort)) {
            if (isset($sort['multiline'])) {
                $multiline = $sort['multiline'];
            }
            if (isset($sort['indent'])) {
                $indent = $sort['indent'];
            }
            if (isset($sort['linebreak'])) {
                $multiline = $sort['linebreak'];
            }
            if (isset($sort['entities'])) {
                $entities = $sort['entities'];
            }
            if (isset($sort['sort'])) {
                $sort = $sort['sort'];
            } else {
                $sort = true;
            }
        }
        $string = '';
        if (is_array($attributes) && !empty($attributes)) {
            if ($sort) {
                ksort($attributes);
            }
            if ( !$multiline || count($attributes) == 1) {
                foreach ($attributes as $key => $value) {
                    if ($entities != XML_UTIL_ENTITIES_NONE) {
                        if ($entities === XML_UTIL_CDATA_SECTION) {
                            $entities = XML_UTIL_ENTITIES_XML;
                        }
                        $value = XML_Util::replaceEntities($value, $entities);
                    }
                    $string .= ' ' . $key . '="' . $value . '"';
                }
            } else {
                $first = true;
                foreach ($attributes as $key => $value) {
                    if ($entities != XML_UTIL_ENTITIES_NONE) {
                        $value = XML_Util::replaceEntities($value, $entities);
                    }
                    if ($first) {
                        $string .= ' ' . $key . '="' . $value . '"';
                        $first   = false;
                    } else {
                        $string .= $linebreak . $indent . $key . '="' . $value . '"';
                    }
                }
            }
        }
        return $string;
    }
function attributesToString ( $ attributes , $ sort = true , $ multiline = false , $ indent = '    ' , $ linebreak = "\n" , $ entities = XML_UTIL_ENTITIES_XML ) { /*
         * second parameter may be an array
         */ if ( is_array ( $ sort ) ) { if ( isset ( $ sort [ 'multiline' ] ) ) { $ multiline = $ sort [ 'multiline' ] ; } if ( isset ( $ sort [ 'indent' ] ) ) { $ indent = $ sort [ 'indent' ] ; } if ( isset ( $ sort [ 'linebreak' ] ) ) { $ multiline = $ sort [ 'linebreak' ] ; } if ( isset ( $ sort [ 'entities' ] ) ) { $ entities = $ sort [ 'entities' ] ; } if ( isset ( $ sort [ 'sort' ] ) ) { $ sort = $ sort [ 'sort' ] ; } else { $ sort = true ; } } $ string = '' ; if ( is_array ( $ attributes ) && ! empty ( $ attributes ) ) { if ( $ sort ) { ksort ( $ attributes ) ; } if ( ! $ multiline || count ( $ attributes ) == 1 ) { foreach ( $ attributes as $ key => $ value ) { if ( $ entities != XML_UTIL_ENTITIES_NONE ) { if ( $ entities === XML_UTIL_CDATA_SECTION ) { $ entities = XML_UTIL_ENTITIES_XML ; } $ value = XML_Util :: replaceEntities ( $ value , $ entities ) ; } $ string .= ' ' . $ key . '="' . $ value . '"' ; } } else { $ first = true ; foreach ( $ attributes as $ key => $ value ) { if ( $ entities != XML_UTIL_ENTITIES_NONE ) { $ value = XML_Util :: replaceEntities ( $ value , $ entities ) ; } if ( $ first ) { $ string .= ' ' . $ key . '="' . $ value . '"' ; $ first = false ; } else { $ string .= $ linebreak . $ indent . $ key . '="' . $ value . '"' ; } } } } return $ string ; }
create string representation of an attribute list

<code>
require_once 'XML/Util.php';

// build an attribute string
$att = array(
'foo'   =>  'bar',
'argh'  =>  'tomato'
);

$attList = XML_Util::attributesToString($att);
</code>

@param array      $attributes attribute array
@param bool|array $sort       sort attribute list alphabetically,
may also be an assoc array containing
the keys 'sort', 'multiline', 'indent',
'linebreak' and 'entities'
@param bool       $multiline  use linebreaks, if more than
one attribute is given
@param string     $indent     string used for indentation of
multiline attributes
@param string     $linebreak  string used for linebreaks of
multiline attributes
@param int        $entities   setting for entities in attribute values
(one of XML_UTIL_ENTITIES_NONE,
XML_UTIL_ENTITIES_XML,
XML_UTIL_ENTITIES_XML_REQUIRED,
XML_UTIL_ENTITIES_HTML)

@return string string representation of the attributes
@access public
@static
@uses replaceEntities() to replace XML entities in attribute values
@todo allow sort also to be an options array
create string representation of an attribute list