当前位置: 首页 > article >正文

PHP接收并处理请求中携带的xml格式的信息

企业微信以xml的形式给服务器发送通知。具体参考:企业微信文档——事件格式

        dump(file_get_contents("php://input"));
        /**
         *
         string(530) "<xml>
        <ToUserName><![CDATA[ww55ca070cb9b7eb22]]></ToUserName>
        <FromUserName><![CDATA[sys]]></FromUserName>
        <CreateTime>1403610513</CreateTime>
        <MsgType><![CDATA[event]]></MsgType>
        <Event><![CDATA[change_external_chat]]></Event>
        <ChatId><![CDATA[wrx7HUARsKwGRaQBVKPBTcEyzdHA4HrQ]]></ChatId>
        <ChangeType><![CDATA[update]]></ChangeType>
        <UpdateDetail><![CDATA[add_member]]></UpdateDetail>
        <JoinScene>1</JoinScene>
        <QuitScene>0</QuitScene>
        <MemChangeCnt>10</MemChangeCnt>
        </xml>"
         */
        $xml = simplexml_load_string(file_get_contents("php://input"), 'SimpleXMLElement', LIBXML_NOCDATA);
        dump($xml);
        /**
         *object(SimpleXMLElement)#22 (11) {
        ["ToUserName"] => string(18) "ww55ca070cb9b7eb22"
        ["FromUserName"] => string(3) "sys"
        ["CreateTime"] => string(10) "1403610513"
        ["MsgType"] => string(5) "event"
        ["Event"] => string(20) "change_external_chat"
        ["ChatId"] => string(32) "wrx7HUARsKwGRaQBVKPBTcEyzdHA4HrQ"
        ["ChangeType"] => string(6) "update"
        ["UpdateDetail"] => string(10) "add_member"
        ["JoinScene"] => string(1) "1"
        ["QuitScene"] => string(1) "0"
        ["MemChangeCnt"] => string(2) "10"
        }
         *
         */
        $data = array();
        foreach ($xml as $k => $v) {
            $data[(string) $k] = (string) $v;
        }

        dump($data);
        /**
         * array(11) {
        ["ToUserName"] => string(18) "ww55ca070cb9b7eb22"
        ["FromUserName"] => string(3) "sys"
        ["CreateTime"] => string(10) "1403610513"
        ["MsgType"] => string(5) "event"
        ["Event"] => string(20) "change_external_chat"
        ["ChatId"] => string(32) "wrx7HUARsKwGRaQBVKPBTcEyzdHA4HrQ"
        ["ChangeType"] => string(6) "update"
        ["UpdateDetail"] => string(10) "add_member"
        ["JoinScene"] => string(1) "1"
        ["QuitScene"] => string(1) "0"
        ["MemChangeCnt"] => string(2) "10"
        }
         * 
         */


http://www.kler.cn/a/133290.html

相关文章:

  • @Autowired和@Resource的区别
  • 如何优化Kafka消费者的性能
  • dockers+Jenkins+git+自动化框架
  • 摄像机视频分析软件下载LiteAIServer视频智能分析软件抖动检测的技术实现
  • Git回到某个分支的某次提交
  • 基于yolov8、yolov5的车型检测识别系统(含UI界面、训练好的模型、Python代码、数据集)
  • 【小黑送书—第八期】>>别再吐槽大学教材了,来看看这些网友强推的数学神作!
  • 解决STM32F429烧录程序后还需复位才能植入程序的bug
  • 深入Android S(12.0) 探索 Android Framework 之 SystemServer 进程启动详解
  • 解决docker运行elastic服务端启动不成功
  • pandas教程:Resampling and Frequency Conversion 重采样和频度转换
  • Flask学习一:概述
  • IntelliJ IDE 插件开发 |(一)快速入门
  • CentOS7安装xvfb,解决服务器没有X-Server的问题
  • springboot+activiti5.22.0集成Activiti在线流程设计器
  • 数据结构-插入排序实现
  • CCRC认证是什么?
  • JVM 调优指南
  • 视频会议设备如何安装?
  • 机器学习笔记 - 使用 PyTorch 的多任务学习和 HydraNet
  • SpringBoot-----从前端更新数据到MySql数据库
  • Android问题笔记四十六:解决open failed: EACCES (Permission denied) 问题
  • Scrapy----Scrapy简介
  • 记录一次较为完整的服务打包发布流程
  • Java中,ArrayList和LinkedList区别区分,简洁
  • Navicat 基于 GaussDB 主备版的快速入门