• xml的解构与组装


    xml的结构

    
    
    <xml>
    <ToUserName><![CDATA[%s]]></ToUserName>
    <FromUserName><![CDATA[%s]]></FromUserName>
    <CreateTime>%s</CreateTime>
    <MsgType><![CDATA[text]]></MsgType>
    <Content><![CDATA[%s]]></Content>
    <FuncFlag>%d</FuncFlag>
    </xml>
    
    

    xml转成对象

     $postObj = simplexml_load_string($ticket_xml, 'SimpleXMLElement', LIBXML_NOCDATA);

    拼装xml

        /**
         * 文本消息组装xml
         *
         * @param unknown $postObj
         * @param unknown $content
         * @param number $funcFlag
         * @return string
         */
        public function event_key_text($postObj, $content, $funcFlag = 0)
        {
            if (! empty($content)) {
                $xmlTpl = "<xml>
                                <ToUserName><![CDATA[%s]]></ToUserName>
                                <FromUserName><![CDATA[%s]]></FromUserName>
                                <CreateTime>%s</CreateTime>
                                <MsgType><![CDATA[text]]></MsgType>
                                <Content><![CDATA[%s]]></Content>
                                <FuncFlag>%d</FuncFlag>
                            </xml>";
                $resultStr = sprintf($xmlTpl, $postObj->FromUserName, $postObj->ToUserName, time(), $content, $funcFlag);
                return $resultStr;
            }else{
                return '';
            }
        }

    /**
    * 返回图文消息组装xml
    *
    * @param unknown $postObj
    * @param unknown $arr_item
    * @param number $funcFlag
    * @return void|string
    */
    public function event_key_news($postObj, $arr_item, $funcFlag = 0)
    {
    // 首条标题28字,其他标题39字
    if (! is_array($arr_item)) {
    return;
    }
    $itemTpl = "<item>
    <Title><![CDATA[%s]]></Title>
    <Description><![CDATA[%s]]></Description>
    <PicUrl><![CDATA[%s]]></PicUrl>
    <Url><![CDATA[%s]]></Url>
    </item>
    ";
    $item_str = "";
    foreach ($arr_item as $item) {
    $item_str .= sprintf($itemTpl, $item['Title'], $item['Description'], $item['PicUrl'], $item['Url']);
    }
    $newsTpl = "<xml>
    <ToUserName><![CDATA[%s]]></ToUserName>
    <FromUserName><![CDATA[%s]]></FromUserName>
    <CreateTime>%s</CreateTime>
    <MsgType><![CDATA[news]]></MsgType>
    <Content><![CDATA[]]></Content>
    <ArticleCount>%s</ArticleCount>
    <Articles>$item_str</Articles>
    <FuncFlag>%s</FuncFlag>
    </xml>";
    $resultStr = sprintf($newsTpl, $postObj->FromUserName, $postObj->ToUserName, time(), count($arr_item), $funcFlag);
    return $resultStr;
    }
     
  • 相关阅读:
    vue 路由跳转传参
    vue better-scroll 下拉上拉,加载刷新
    H5点击拨打电话,发短信
    vue搭建项目
    How to determine the socket connection up time on Linux
    @ContextConfiguration注解
    MySQL修改主键属性
    软件测试工程师面试(一)
    Python实现不同格式打印九九乘法表
    MySQL 5.1安装和配置过程中遇到的问题
  • 原文地址:https://www.cnblogs.com/huay/p/10356419.html
Copyright © 2020-2023  润新知