thinkphp xml编码函数

/**
 * XML编码
 * @param mixed $data 数据
 * @param string $root 根节点名
 * @param string $item 数字索引的子节点名
 * @param string $attr 根节点属性
 * @param string $id   数字索引子节点key转换的属性名
 * @param string $encoding 数据编码
 * @return string
 */
function xml_encode($data, $root=‘think‘, $item=‘item‘, $attr=‘‘, $id=‘id‘, $encoding=‘utf-8‘) {
    if(is_array($attr)){
        $_attr = array();
        foreach ($attr as $key => $value) {
            $_attr[] = "{$key}=\"{$value}\"";
        }
        $attr = implode(‘ ‘, $_attr);
    }
    $attr   = trim($attr);
    $attr   = empty($attr) ? ‘‘ : " {$attr}";
    $xml    = "<?xml version=\"1.0\" encoding=\"{$encoding}\"?>";
    $xml   .= "<{$root}{$attr}>";
    $xml   .= data_to_xml($data, $item, $id);
    $xml   .= "</{$root}>";
    return $xml;
}

/**
 * 数据XML编码
 * @param mixed  $data 数据
 * @param string $item 数字索引时的节点名称
 * @param string $id   数字索引key转换为的属性名
 * @return string
 */
function data_to_xml($data, $item=‘item‘, $id=‘id‘) {
    $xml = $attr = ‘‘;
    foreach ($data as $key => $val) {
        if(is_numeric($key)){
            $id && $attr = " {$id}=\"{$key}\"";
            $key  = $item;
        }
        $xml    .=  "<{$key}{$attr}>";
        $xml    .=  (is_array($val) || is_object($val)) ? data_to_xml($val, $item, $id) : $val;
        $xml    .=  "</{$key}>";
    }
    return $xml;
}
时间: 2024-08-17 13:36:59

thinkphp xml编码函数的相关文章

ThinkPHP内置函数详解D、F、S、C、L、A、I

ThinkPHP内置函数详解D.F.S.C.L.A.I 单字母函数D.F.S.C.L.A.I 他们都在ThinkPHP核心的ThinkPHP/Mode/Api/functions.php这个文件中定义. 下面我分别说明一下他们的功能: D() 加载Model类 M() 加载Model类 A() 加载Action类 L() 获取语言定义 C() 获取配置值    用法就是   C("这里填写在配置文件里数组的下标") S() 全局缓存配置 用法S(“这里相当于一个唯一的标识”) F()

[CareerCup] 17.10 Encode XML 编码XML

17.10 Since XML is very verbose, you are given a way of encoding it where each tag gets mapped to a pre-defined integer value. The language/grammar is as follows: Element --> Tag Attributes END Children END Attribute --> Tag Value END --> 0 Tag -

PHP XML Parser函数

PHP XML Parser 函数 PHP XML Parser 简介 XML 函数允许您解析 XML 文档,但无法对其进行验证. XML 是一种用于标准结构化文档交换的数据格式.您可以在我们的 XML 教程 中找到更多有关 XML 的信息. 该扩展使用 Expat XML 解析器. Expat 是一种基于事件的解析器,它把 XML 文档视为一系列事件.当某个事件发生时,它调用一个指定的函数处理它. Expat 是无验证的解析器,忽略任何链接到文档的 DTD.但是,如果文档的形式不好,则会以一个

PHP XML Parser 函数

PHP XML Parser 简介 XML 函数允许您解析 XML 文档,但无法对其进行验证.http://www.jinnan411.top/ XML 是一种用于标准结构化文档交换的数据格式.您可以在我们的 XML 教程 中找到更多有关 XML 的信息. 该扩展使用 Expat XML 解析器. Expat 是一种基于事件的解析器,它把 XML 文档视为一系列事件.当某个事件发生时,它调用一个指定的函数处理它. Expat 是无验证的解析器,忽略任何链接到文档的 DTD.但是,如果文档的形式不

url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介

url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介 2014年10月12日 16806次浏览 引子 浏览器URl地址,上网一定会用到,但是浏览器地址有中文或者浏览器url参数操作的时候,经常会用到encodeURIComponent()和decodeURIComponent()以及encodeURI()等等.关于浏览器参数操作,请看文章http://www.haorooms.com/post/js_url_canshu ,今天主要讲讲e

thinkphp模版调用函数方法

原文:thinkphp模版调用函数方法 {变量|函数1|函数2|函数3=参数1,参数2,参数3,###} ###为第4个参数,代表变量替换为第4个参数 举例: {$username|substr=0,3}取标题中前3个字符 {$times|date='Y-m-d H:i:s',###}将times时间戳转换为日期格式 ================================================== 冒号执行函数的用法:输出方法并执行返回值 {:U('user/insert')

url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介【转】

引子 浏览器URl地址,上网一定会用到,但是浏览器地址有中文或者浏览器url参数操作的时候,经常会用到encodeURIComponent()和decodeURIComponent()以及encodeURI()等等.关于浏览器参数操作,请看文章http://www.haorooms.com/post/js_url_canshu ,今天主要讲讲escape(),encodeURI(),encodeURIComponent()这几个函数的用法和区别. 为啥会有浏览器编码这一说法 一般来说,URL只能

x264代码剖析(三):主函数main()、解析函数parse()与编码函数encode()

x264代码剖析(三):主函数main().解析函数parse()与编码函数encode() x264的入口函数为main().main()函数首先调用parse()解析输入的参数,然后调用encode()编码YUV数据.parse()首先调用x264_param_default()为保存参数的x264_param_t结构体赋默认值:然后在一个大循环中通过getopt_long()解析通过命令行传递来的存储在argv[]中的参数,并作相应的设置工作:最后调用select_input()和sele

ThinkPHP内置函数----I方法

虽然你仍然可以在开发过程中使用传统方式获取各种系统变量,例如: $id    =  $_GET['id']; // 获取get变量$name  =  $_POST['name'];  // 获取post变量$value =  $_SESSION['var']; // 获取session变量$name  =  $_COOKIE['name']; // 获取cookie变量$file  =  $_SERVER['PHP_SELF']; // 获取server变量 但是我们不建议直接使用传统方式获取,