很多站长朋友们都不太清楚phpxml传递,今天小编就来给大家整理phpxml传递,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php如何通过xml传递数据 2、 php 传递xml到asp, 3、 PHP如何向JAVA接口webservice发送xml 4、 php 如何发送xml报文 php如何通过xml传递数据获取request中body的字符串数据,比如一个数组转成xml后,你用post方式给服务器发送xml的字符串,服务器就用file_get_contents('php://input') 去读取xml格式 然后转成数组即可
php 传递xml到asp,这个很简单,先用php读取数据库,看需求传几个参数,比如:关键词、页码、每页显示几条,然后将数据显示为xml格式。
<?php
//输出xml
ob_start("ob_gzhandler");
header('Content-Type:application/xml;charset='.$code);
$list = $db -> getSearchList($key,$page,$pagesize);
$xml = $this->createXML($list);
echo $xml;
?>
调用这个方法:
/**
* 将数组生成XML文件
* array $list
*/
public function createXML($list = null , $code = 'gbk'){
$dom = new DOMDocument('1.0', $code);//编码
$datas = $dom->createElement('datas');
$dom -> appendChild($datas);
$time = $dom->createAttribute('time');//时间
$time -> nodeValue = date('Y-m-d H:i:s', mktime());
$datas -> setAttributeNode($time);
$datas -> appendChild($time);
$total = $dom->createAttribute('allitem'); //统计
$total -> nodeValue = count($list);
$datas -> setAttributeNode($total);
$datas -> appendChild($total);
$lists = $dom->createElement('list'); //列表
$datas -> appendChild($lists);
foreach($list as $k => $v){
$data = $dom->createElement('data');
foreach($v as $key => $val){
if($key == 'description'){ //如果字段为description,用CDATA对象处理
$element = $dom->createElement($key);
$data->appendChild($element);
$element_value=$dom->createCDATASection($val);
$element->appendChild($element_value);
}else{
$element = $dom->createElement($key);
$data->appendChild($element);
$element_value=$dom->createTextNode($val);
$element->appendChild($element_value);
}
}
$lists->appendChild($data);
}
return $dom->saveXML();
}
asp读取这个php的地址,解析出来就好了。
PHP如何向JAVA接口webservice发送xmlfunction httpPostXml($url='',$xmlData=''){
$server = $url;
//首先检测是否支持curl
if (!extension_loaded("curl")) {
trigger_error("对不起,请开启curl功能模块!", E_USER_ERROR);
return null;
}
//构造xml
$xmldata= $xmlData;
//初始一个curl会话
$curl = curl_init();
//设置url
curl_setopt($curl, CURLOPT_URL,$server);
//设置发送方式:post
curl_setopt($curl, CURLOPT_POST, true);
//设置发送数据
curl_setopt($curl, CURLOPT_POSTFIELDS, $xmldata);
//不输出浏览器,返回service返回值
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
//抓取URL并把它传递给浏览器
$return = curl_exec($curl);
//关闭cURL资源,并且释放系统资源
if(curl_errno($curl)){
echo curl_error($curl);
}
var_dump($return);
$xml = simplexml_load_string($return);
$returnData = json_decode(json_encode($xml),TRUE);
return $returnData;
}
php 如何发送xml报文<?php
if( $_SERVER['REQUEST_METHOD'] === 'POST' ){
// 接收
$content = file_get_contents('php://input');
$xml = simplexml_load_string($content);
echo "来自XML接收方的响应\n";
print_r( get_object_vars($xml) );
exit;
}
// 发送行为
$xml = <<<xml
<?xml version="1.0"?>
<FOX>
<hello>world</hello>
</FOX>
xml;
$setting = array(
'http' => array(
'method' => 'POST',
'user_agent' => '<Client Application Name>',
'header' => "Content-type: application/x-www-form-urlencoded",
'content' => $xml
)
);
$context = stream_context_create($setting);
$url = ''. $_SERVER['REQUEST_URI'];
$response = file_get_contents($url, null, $context);
echo $response;
CURL是可以的,但是参数设置比较麻烦。这种情况有一些现成的类库实现,提供一个简单的示例
关于phpxml传递的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。