本文目录一览:
- 1、Php给网站做接口,是返回xml还是json
- 2、PHP怎么解析微信支付结果返回的xml
- 3、关于PHP如何获取POST过来的XML并操作后返回输出一个XML
- 4、怎样通过php程序返回xml格式的数据
- 5、关于ajax发送请求到php在返回xml的过程
- 6、php中如何接收服务器端返回的xml数据 注:服务器是通过接口调用显示xml数据的 。
Php给网站做接口,是返回xml还是json
返回的数据是php去决定的,xml和json都是可以的,
你可以和使用接口的一方定好规则,到底要xml格式数据还是json格式的数据。
当然你也可以更灵活点,当别人请求你的接口的时候,带上参数。你在接口里面接受,如果参数是1,你就返回json,如果是2,你就返回xml这样做显得更灵活。这都是在乎你在接口中怎么去写的。
PHP怎么解析微信支付结果返回的xml
PHP解析微信支付结果返回的xml的方法是通过自定义方法和第三方组件DomDocument实现的。
1、解析代码如下:
?PHP
header("Content-type:text/html; Charset=utf-8");
$url = "";
// 加载XML内容
$content = file_get_contents($url);
$content = get_utf8_string($content);
$dom = DOMDocument::loadXML($content);
/*
此处也可使用如下所示的代码,
$dom = new DOMDocument();
$dom-load($url);
*/
$elements = $dom-getElementsByTagName("current_conditions");
$element = $elements-item(0);
$condition = get_google_xml_data($element, "condition");
$temp_c = get_google_xml_data($element, "temp_c");
echo '天气:', $condition, 'br /';
echo '温度:', $temp_c, 'br /';
function get_utf8_string($content) { // 将一些字符转化成utf8格式
$encoding = mb_detect_encoding($content, array('ASCII','UTF-8','GB2312','GBK','BIG5'));
return mb_convert_encoding($content, 'utf-8', $encoding);
}
function get_google_xml_data($element, $tagname) {
$tags = $element-getElementsByTagName($tagname); // 取得所有的$tagname
if ($items-length 1) {
return $items;
}
$tag = $tags-item(0); // 获取第一个以$tagname命名的标签
if ($tag-hasAttributes()) { // 获取data属性
$attribute = $tag-getAttribute("data");
return $attribute;
}else {
return false;
}
}
?
2、返回支付的xml报文:
?xml version="1.0"?
xml_api_reply version="1"
weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0"
forecast_information
city data="Shenzhen, Guangdong"/
postal_code data="shenzhen"/
latitude_e6 data=""/
longitude_e6 data=""/
forecast_date data="2009-10-05"/
current_date_time data="2009-10-04 05:02:00 +0000"/
unit_system data="US"/
/forecast_information
current_conditions
condition data="Sunny"/
temp_f data="88"/
temp_c data="31"/
humidity data="Humidity: 49%"/
icon data="/ig/images/weather/sunny.gif"/
wind_condition data="Wind: mph"/
/current_conditions
/weather
/xml_api_reply
3、打印解析结果:
print $html;
关于PHP如何获取POST过来的XML并操作后返回输出一个XML
PHP 提供了集中方式读取xml
5.0 以上的话,可以用 xmlreader 和 xmlwriter 读写xml
比如 post 了 $xml = $_POST['xml'];
用 XMLReader 解析
$reader = new XMLReader();
$reader-xml($xml);
解析数据即可,生成xml 用代码或用xmlWriter 都可以
$xml = "?xml version="1.0" ?\n";
$xml.="roothello world/root";
echo $xml;
怎样通过php程序返回xml格式的数据
无论是返回 json 还是 xml 数据,区别仅在于数据的格式。
返回 xml 格式数据示例如下:
?php
//指示返回数据格式为 xml
header('Content-Type: text/xml');
?
?xml version="1.0" encoding="utf-8" ?
?php
//构造 xml
//$xmldata = "
// data
// site_name$site[name]/site_name
// ........
// data";
echo $xmldata;
?
关于ajax发送请求到php在返回xml的过程
你的想法是正确的,不需要另外生成xml文件。你只需要把特定格式的数据发回去就好了
关于ajax,我建议你用jquery的封装函数.ajax
使用方法如下:
test.html
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
""
html lang="en-US"
head
meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
title/title
script src="./jquery.js"/script
script
function ajax_test(params){
$.ajax({
url:'./test.php',
type:'post',
dataType:'html',
data:params,
error: function(){alert('error');},
success:function(products){
alert(products);
}
});
}
/script
/head
body
input type=button value='test' onclick="ajax_test('1');"
/body/html
test.php
?php
echo 'hello world';
?
关于jquery的说明文档网上有很多。
说明:ajax的数据是按utf-8格式传递,如果发现乱码问题,就是因为这个
$.ajax(properties)
使用HTTP请求(XMLHttpRequest)载入一个远程页面。
这是jQuery的低级AJAX实现。要查看高级抽象,见$.set、$.post等。
$.ajax()返回创建好的XMLHttpRequest对象。多数情况下并不需要直接操纵这个对象,但是如果需要手动中止请求,它也是可用的。
注意:要确保服务器返回正确的MIME类型(例如:XML是“text/xml”)。如果返回了错误的MIME类型就会导致jQuery无法处理的严重问题。
支持的数据类型包括(见dataType选项):
"xml": 返回一个可以由jQuery对象处理的XML文档。
"html": 返回纯文本格式的HTML,包括求值后的脚本标记。
"script": 将响应作为Javascript语句求值,并返回纯文本。
"json": 将响应作为JSON求值,并返回一个Javascript对象。
返回json数据的例子:
success:function(products){
$.each(products, function(i, n){
switch(i){
case 'page': show_pages(n);break;
case 'other': //$("#data_search_res1").html(n.sql);
break;
case 'sql':break;
case 'top5'://show_top5(n);
break;
default:str_tables+=show_dable(n);
break;
}
});
}
php:生成josn数据
?php
include_once("../include/JSON.php");
//此文件可到google搜索,如找不到可以留下邮箱,我给你发一份
$json = new Services_JSON();
$str_back['page']=array('start'= $start,
'page'= $pageId,
'pagecnt'= $pageCnt,
'maxno'= $maxNo,
'pages'= $pages,
'nums'= $numRs
);
$out_put=$json-encode($str_back);
echo $out_put;
?
php中如何接收服务器端返回的xml数据 注:服务器是通过接口调用显示xml数据的 。
ajax 调用并且要用xpath语法来抽取里头数据并通过一定处理输出到client。
至于怎么做你可以接着度娘