数组/XML 互转函数

2018-09-10 14:25:41 总阅读量:78,本日阅读:3,本周阅读:3,本月阅读:3 0条
/**
 * 输出xml字符
 * @param array $values
 * @return string|bool
 **/
function arrToXml($values)
{
    if (!is_array($values) || count($values) <= 0) {
        return false;
    }
    $xml = "<xml>";
    foreach ($values as $key => $val) {
        if (is_numeric($val)) {
            $xml .= "<" . $key . ">" . $val . "</" . $key . ">";
        } else {
            $xml .= "<" . $key . "><![CDATA[" . $val . "]]></" . $key . ">";
        }
    }
    $xml .= "</xml>";
    return $xml;
}

/**
 * 将xml转为array
 * @param string $xml
 * @return array|false
 */
function xmlToArray($xml)
{
    if (!$xml) {
        return false;
    }
    // 检查xml是否合法
    $xml_parser = xml_parser_create();
    if (!xml_parse($xml_parser, $xml, true)) {
        xml_parser_free($xml_parser);
        return false;
    }
    // 将XML转为array
    $data = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
    return $data;
}
标签 函数 PHP

非特殊说明,本博所有文章均为博主原创。

-----