
正文
php接收xml数据包 php读取xml接口数据
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
PHp怎么获取网络传过来的xml文件
?php
$xml_string = file_get_contents("php://input");
$xml_string = trim($xml_string);
$xml_object = simplexml_load_string($xml_string);
$xml_arr = get_object_vars($xml_object);
只要别人访问php接收xml数据包你这个文件传递xml。php接收xml数据包你就能获取其中php接收xml数据包的信息php接收xml数据包了。
相关问答
Q1: 怎么用php读取URL形式的XML文件
PHP是一个网页脚本,但不同于html xml 标签语言,直接可以通过浏览器打开,需要有PHP的运行环境才可以访问和打开文件,如果只是编辑PHP打开文件,只需要用
1、记事本;
2、Dreamweaver;
3、EclipsePHP;
4、editplus .
使用记事本打开php文件的方法是将鼠标放在php文件上
鼠标右键——选择打开方式——选择记事本打开即可
Q2: php如何获取xml数据包
//提取XML数据源
$xmlUrl= '';
echo $xmlUrl;
$curl= curl_init();
curl_setopt($curl, CURLOPT_URL, $xmlUrl);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl, CURLOPT_HEADER, 0);
$xmlData= curl_exec($curl);
curl_close($curl);
//判断XML编码
if(preg_match("/encoding\=[\'\"](.*?)[\'\"]/i", $xmlData, $encoding)){
$encoding = $encoding[1];
}else{
$encoding = mb_detect_encoding($xmlData, array('ASCII', 'GBK', 'GB2312', 'UTF-8', 'iso-8859-1'));
}
echo $encoding;
//转换XML编码
if($encoding){
$xmlData = preg_replace('/encoding\=[\'\"](.*?)[\'\"]/i', 'encoding="utf-8"', $xmlData);
switch(strtolower($encoding)){
case 'utf-8': break;
case 'iso-8859-1':
$xmlData = utf8_encode($xmlData);
break;
default:
$xmlData = iconv($encoding, 'UTF-8//IGNORE', $xmlData);
break;
}
}
$xmlData= simplexml_load_string($xmlData);
print_r($xmlData);
Q3: php中如何接收服务器端返回的xml数据 注:服务器是通过接口调用显示xml数据的 。
ajax 调用并且要用xpath语法来抽取里头数据并通过一定处理输出到client。
至于怎么做php接收xml数据包你可以接着度娘
Q4: 如何在PHP中使用socket+XML发送数据包
接收指定IP的数据包,其他IP都要过滤吧,那就用防火墙来搞吧
使用的是client段的获取方式,用client的可以指定IP,代码大概如下
public void SendMessage()
{
ASCII = Encoding.ASCII;
// 构造用于发送的 字节缓冲.
Byte[] sendBytes = ASCII.GetBytes(SEND_MESSAGE);
// 构造用于接收的 字节缓冲.
Byte[] recvBytes = new Byte[256];
// IP地址.
IPAddress localAddr = IPAddress.Parse("192.168.19.81");
// 接入点.
IPEndPoint ephost = new IPEndPoint(localAddr, PORT);
// 第一个参数:AddressFamily = 指定 Socket 类的实例可以使用的寻址方案。
// Unspecified 未指定地址族。
// InterNetwork IP 版本 4 的地址。
// InterNetworkV6 IP 版本 6 的地址。
//
// 第二个参数:SocketType = 指定 Socket 类的实例表示的套接字类型。
// Stream 一个套接字类型,支持可靠、双向、基于连接的字节流,而不重复数据,也不保留边界。
// 此类型的 Socket 与单个对方主机通信,并且在通信开始之前需要建立远程主机连接。
// 此套接字类型使用传输控制协议 (Tcp),AddressFamily 可以是 InterNetwork,也可以是 InterNetworkV6。
//
// 第三个参数:ProtocolType = 指定 Socket 类支持的协议。
// Tcp 传输控制协议 (TCP)。
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
// 尝试连接主机.
s.Connect(ephost);
//Console.WriteLine("向服务器发送到了:{0}", SEND_MESSAGE);
// 向主机发送数据.
// s.Send(sendBytes, sendBytes.Length, SocketFlags.None);
// 接收服务器的应答.
Int32 bytes = s.Receive(recvBytes, recvBytes.Length, SocketFlags.None);
StringBuilder buff = new StringBuilder();
// while (bytes 0)
// {
// 将缓冲的字节数组,装换为字符串.
// String str = ASCII.GetString(recvBytes, 0, bytes);
String str = "";
for (int i = 0; i recvBytes.Length; i++)
{
str = str + recvBytes[i];
}
int iCount = 0;
iCount = int.Parse(str.Substring(13, 6)) ;
// 加入字符串缓存
buff.Append(str);
// 再次接受,看看后面还有没有数据.
//bytes = s.Receive(recvBytes, recvBytes.Length, SocketFlags.None);
// }
textBox1.Text = iCount.ToString();
}
catch (Exception ex)
{
MessageBox.Show("连接/发送/接收过程中,发生了错误!");
MessageBox.Show(ex.Message);
//Console.WriteLine("连接/发送/接收过程中,发生了错误!");
//Console.WriteLine(ex.Message);
//Console.WriteLine(ex.StackTrace);
}
finally
{
s.Close();
}
Q5: php curl能接收xml数据吗
完全可以
接收到的 body部分
用simple_xml库 自己序列化成对象即可
php接收xml数据包的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php读取xml接口数据、php接收xml数据包的信息别忘了在本站进行查找喔。







