Example #1
0
/**
 * Serialise an array.
 *
 * @param array $data The data to serialize
 * @param int   $n    Used for recursion
 *
 * @return string
 */
function serialise_array_to_xml(array $data, $n = 0)
{
    $output = "";
    if ($n == 0) {
        $output = "<array>\n";
    }
    foreach ($data as $key => $value) {
        $item = "array_item";
        if (is_numeric($key)) {
            $output .= "<{$item} name=\"{$key}\" type=\"" . gettype($value) . "\">";
        } else {
            $item = $key;
            $output .= "<{$item} type=\"" . gettype($value) . "\">";
        }
        if (is_object($value)) {
            $output .= serialise_object_to_xml($value, "", $n + 1);
        } else {
            if (is_array($value)) {
                $output .= serialise_array_to_xml($value, $n + 1);
            } else {
                if (gettype($value) == "boolean") {
                    $output .= $value ? "true" : "false";
                } else {
                    $output .= htmlspecialchars($value, ENT_NOQUOTES, 'UTF-8');
                }
            }
        }
        $output .= "</{$item}>\n";
    }
    if ($n == 0) {
        $output .= "</array>\n";
    }
    return $output;
}
/**
 * Serialise an array.
 *
 * @param array $data
 * @param int $n Used for recursion
 * @return string
 */
function serialise_array_to_xml(array $data, $n = 0)
{
    $output = "";
    if ($n == 0) {
        $output = "<array>\n";
    }
    foreach ($data as $key => $value) {
        $item = "array_item";
        if (is_numeric($key)) {
            $output .= "<{$item} name=\"{$key}\" type=\"" . gettype($value) . "\">";
        } else {
            $item = $key;
            $output .= "<{$item} type=\"" . gettype($value) . "\">";
        }
        if (is_object($value)) {
            $output .= serialise_object_to_xml($value, "", $n + 1);
        } else {
            if (is_array($value)) {
                $output .= serialise_array_to_xml($value, $n + 1);
            } else {
                $output .= htmlentities($value);
            }
        }
        $output .= "</{$item}>\n";
    }
    if ($n == 0) {
        $output = "</array>\n";
    }
    return $output;
}