PHP通过接口形式传输xml数据

这里的接口通过传递参数请求数据:
请求形式: xxx.php?data=20140101&page=1

参数说明:data表示请求数据的日期

page表示请求的页数

<?php

    header("Content-type: text/xml;charset=utf-8");  
    date_default_timezone_set(‘PRC‘);     
    include dirname(__FILE__)."/../../../Inc/mysql.php";
    $link = mysql_connect($f_serverName,$f_userName,$f_password);
    $d = mysql_select_db($f_htNewsDate,$link) or die("服务器内部故障,请联系客服!!!");
    mysql_query(‘set names utf8‘);
    
    $data = $_GET[‘data‘];
    $page = $_GET[‘page‘];
    $list = 200;
    $time = strtotime($data);

    $top = array(    
    ‘189‘ => ‘国家‘,
    ‘1854‘ => ‘安徽‘, ‘1831‘ => ‘北京‘, ‘1899‘ => ‘重庆‘, ‘1877‘ => ‘福建‘, //A-F
    ‘1882‘ => ‘甘肃‘, ‘1891‘ => ‘广东‘, ‘1843‘ => ‘广西‘, ‘1870‘ => ‘贵州‘,    //G                                
    ‘1879‘ => ‘海南‘, ‘1858‘ => ‘河北‘, ‘1849‘ => ‘河南‘, ‘1890‘ => ‘湖北‘,    ‘1866‘ => ‘湖南‘, ‘1864‘ => ‘黑龙江‘, //H
    ‘1857‘ => ‘吉林‘, ‘1855‘ => ‘江苏‘, ‘1893‘ => ‘江西‘, ‘1845‘ => ‘辽宁‘, ‘1897‘ => ‘宁夏‘, ‘1892‘ => ‘内蒙古‘, //J-N
    ‘1873‘ => ‘青海‘, ‘1883‘ => ‘上海‘, ‘1840‘ => ‘山东‘, ‘1862‘ => ‘山西‘, ‘1874‘ => ‘陕西‘, ‘1887‘ => ‘四川‘,    //Q-S
    ‘1839‘ => ‘天津‘, ‘1884‘ => ‘西藏‘, ‘1868‘ => ‘新疆‘, ‘1865‘ => ‘云南‘, ‘1851‘ => ‘浙江‘,    //T-Z    
    ‘1993‘ => ‘资讯‘, ‘2043‘ => ‘新闻‘,
    );
    
    foreach($top as $key=>$value){
        $arr[]=$key;
    }
    $arr=implode(‘,‘,$arr);
    
    $limit = ($page-1) * $list;
    $sql ="select id,typeid,title,filename,senddate as pubdate from dede_archives WHERE arcrank=0  AND 
    (flag like ‘%h%‘ OR  flag like ‘%c%‘) AND senddate>=‘1388505600‘ AND pubdate>=‘$time‘ AND typeid in ($arr)  
    ORDER BY pubdate DESC limit $limit,$list";
    $result=mysql_query($sql);
    $data=array();
    while($row=mysql_fetch_assoc($result)){
        if($row[‘typeid‘]==189){
            $categoryId=201; //国家
        }else if($row[‘typeid‘]==2043){
            $categoryId=203; //新闻
        }else if($row[‘typeid‘]==1993){
            $categoryId=299;    //资讯
        }else{
            $categoryId=202; //地方
        }
        
        //判断是否地址
        $file ="http://".$_SERVER[‘HTTP_HOST‘]."/news/".date("Y",$row[‘pubdate‘]).date("md",$row[‘pubdate‘]);
        if($row[‘filename‘]){
            $file = $file ."/".$row[‘filename‘].".html";
        }else{
            $file = $file ."/".$row[‘id‘].".html";
        }

        $data[]=array(
            ‘id‘=>$row[‘id‘],
            ‘categoryId‘=>$categoryId,
            // ‘title‘ =>iconv(‘GBK‘,‘UTF-8//IGNORE‘,$row[‘title‘]),
            ‘title‘ =>$row[‘title‘],
            ‘url‘=>$file,
            ‘updateTime‘=>$row[‘pubdate‘],
        );
    
    }
    
    $sql_num = "select count(id) as num from dede_archives WHERE arcrank=0  AND (flag like ‘%h%‘ OR  flag like ‘%c%‘) AND senddate>=‘1388505600‘ AND pubdate>=‘$time‘ AND typeid in ($arr)";
    $result_num=mysql_query($sql_num);
    $row1=mysql_fetch_assoc($result_num);
    $num = $row1[‘num‘];

    $xml = ‘<?xml version="1.0" encoding="UTF-8"?>‘;
    $xml .= ‘<data>‘;
    $xml .= ‘<apiVersion>1.0</apiVersion>‘;
    $xml .= ‘<sourceId>102</sourceId>‘;
    $xml .= ‘<totalNum>‘.$num.‘</totalNum>‘;
    foreach($data as $key=>$val){
        $xml .= ‘<item>‘;
        $xml .= ‘<id>‘.$val[‘id‘].‘</id>‘;
        $xml .= ‘<title><![CDATA[‘.$val[‘title‘].‘]]></title>‘;
        $xml .= ‘<url>‘.$val[‘url‘].‘</url>‘;
        $xml .= ‘<categoryId>‘.$val[‘categoryId‘].‘</categoryId>‘;
        $xml .= ‘<updateTime>‘.$val[‘updateTime‘].‘</updateTime>‘;
        $xml .= ‘</item>‘;
    }
    $xml .= ‘</data>‘;
    echo $xml;    

    
?>
时间: 2024-08-26 13:52:48

PHP通过接口形式传输xml数据的相关文章

DOM的概念和简单应用:使用DOM解析XML数据

概念:DOM是Document Object Model的简称,即文档数据模型. Oracle公司提供了JAXP(Java API for XML Processing)来解析XML.JAXP会把XML文档转换成一个DOM树,JAXP的三个包都在JDK中. org.w3c.dom;W3C推荐的解析文档的接口 org.xml.sax;使用SAX解析XML文档的接口 javax.xml.parsers;解析器工厂工具 一.使用DOM解析XML文档的步骤 1.创建解析器工厂对象,即DocumentBu

qt中用tcp传输xml消息 good

本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.   环境: 主机:WIN7 开发环境:Qt5 3.1.2 说明: 在tcp上传输xml消息. 协议格式如下: 2字节标识(0xc55c,网络序)+2字节预留 +4字节报文内容长度(网络序) + 4字节命令字(网络序)+报文内容 部分协议: 命令字:请求值班信息:GET_DUTY_INFO请求报文: [html] view plain copy <?xml version="1.0" e

NSURLSession(Get &amp; Post,JSON、XML数据解析,文件上传下载)

NSURLSession(Get & Post,JSON.XML数据解析,文件上传下载) 一.NSURLSession概述 NSURLSession是iOS7中新的网络接口,支持后台网络操作,除非用户强行关闭. NSURLSession使用步骤: 1. 新建NSURLSessionConfiguration,用于NSURLSession的配置 2. 新建NSURLSession 3. 新建NSURLSessionTask对象 4. 执行task 其中NSURLSessionConfigurati

网络相关系列之四:数据解析之SAX方式解析XML数据

一.XML和Json数据的引入: 通常情况下.每一个须要訪问网络的应用程序都会有一个自己的server.我们能够向server提交数据,也能够从server获取数据.只是这个时候就有一个问题,这些数据是以什么格式在网络上传输的呢?一般我们都会在网络上传输一些格式化后的数据,这样的数据会有一定的结构规格和语言,当还有一方收到数据消息后就能够依照同样的结构规格进行解析.从而取出它想要的那部分内容. 在网络上数据传输最经常使用的格式:XML和Json.本文就来学习一下XML数据的解析,Json格式的数

在qt中用tcp传输xml消息

本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN7 开发环境:Qt5 3.1.2 说明: 在tcp上传输xml消息. 协议格式如下: 2字节标识(0xc55c,网络序)+2字节预留 +4字节报文内容长度(网络序) + 4字节命令字(网络序)+报文内容 部分协议: 命令字:请求值班信息:GET_DUTY_INFO请求报文: <?xml version="1.0" encoding="UTF-8"

Web Service 或 WCF调用时读取 XML 数据时,超出最大字符串内容长度配额(8192)解决方法

1.调用服务时服务 当我们使用 Web Service 或 WCF 服务时,常把读取的数据转化为string类型(xml格式),当数据量达到一 定数量时,会出现以下异常: 错误:格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ (命名空间)进行反序列化时出错: InnerException 消息是“反序列化对象异常,读取 XML 数据时,超出最大字符串内容长度配额 (8192).通过更改在创建 XML 读取器时所使用的 XmlDictionaryRea

XML 数据请求与JSON 数据请求

(1)XML 数据请求 使用 AFNetworking 中的 AFHTTPRequestOperation 和 AFXMLParserResponseSerializer,另外结合第三方框架 XMLDictionary 进行数据转换 使用 XMLDictionary 的好处:有效避免自行实现 NSXMLParserDelegate 委托代理协议方法来进行繁琐的数据拼凑解析 (2)JSON 数据请求 使用 AFNetworking 中的 AFHTTPRequestOperation 或 AFHTT

Cocos数据篇[3.4](3) ——XML数据操作

[唠叨] XML 即 可扩展标记语言,在游戏开发中,常用于保存游戏数据信息,如最高分.游戏等级等信息,和描述一些资源等. 加载动画的plist文件.瓦片地图编辑器到处的地图格式tmx文件,实际上都是特定格式的xml文件. 另外 UserDefault 单例类保存的数据,也是存储在xml文件中的. Cocos2d-x 已经加入了 tinyxml2库 用于xml的解析.3.x版本位于external/tinyxml2下. 本节要介绍的就是:如何使用 tinyxml2库 来操作处理xml文件. [参考

php使用curl提交xml数据

$str_callback_url="xxxx.com/api.php";$str_callback_url="xml数据";$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $str_callback_url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);curl_setopt($ch,