PHP实现Soap通讯的方法
分类:计算机教程

本文实例讲述了PHP实现Soap通讯的方法。分享给大家供大家参考。具体实现方法如下:

复制代码 代码如下:

<?php
function HttpSoap($server, $port, $url, $namespace, $action, $data) {
$fp = @fsockopen($server, $port);
if (!$fp) {
return FALSE;
} else {
$soapData = ConstructData($namespace, $action, $data);
$length = strlen($soapData);
$out = "POST $url HTTP/1.1rn";
$out .= "Host: $serverrn";
$out .= "Content-Type: text/xml; charset=utf-8rn";
$out .= "Content-Length: $lengthrn";
$out .= "SOAPAction: "$namespace$action"rnrn";
$out .= $soapData;
$out .= "rnrn";
fputs($fp, $out);
stream_set_timeout($fp, 2);
$header = "";
while($line = trim(fgets($fp))) {
$header .= $line."n";
}
$dataPos = strpos($header, "Content-Length: ") 16;
$dataEnd = strpos($header, "n", $dataPos);
$dataLength = substr($header, $dataPos, $dataEnd - $dataPos);
$data = "";
if($dataLength > 0) {
$data = fread($fp, $dataLength);
}
fclose($fp);
if(strlen($data) != $dataLength || $dataLength <= 0) {
return FALSE;
}
return $data;
}
}
function ConstructData($namespace, $action, $data) {
$soapData = "
<?xml version="1.0" encoding="utf-8"?>
rn";
$soapData .= "<soap:Envelope xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance\ xmlns:xsd="http://www.w3.org/2001/XMLSchema\" xmlns:soap="rn'>http://schemas.xmlsoap.org/soap/envelope/\"&gt;\r\n";
$soapData .= " <soap:Body>rn";
$soapData .= " <$action xmlns="$namespace">rn";
foreach($data as $name => $value) {
$name = iconv("GBK","UTF-8",$name);
$value= iconv("GBK","UTF-8",$value);
男篮世界杯赔率,$soapData .= " <$name>$value</$name>rn";
}
$soapData .= " </$action>rn";
$soapData .= " </soap:Body>rn";
$soapData .= "</soap:Envelope>";
return $soapData;
}
<?
$data=array(
'user'=>'测试', //如果需要输入二进制数据请采用BASE64编码
'pass'=>'test'
);
echo HttpSoap('sample.anyhost.com', 80, '/sampleSoap.asmx', 'http://tempuri.org/', 'logIn', $data);
?>

希望本文所述对大家的PHP程序设计有所帮助。

本文由美洲杯赔率发布于计算机教程,转载请注明出处:PHP实现Soap通讯的方法

上一篇:男篮世界杯赔率将CMYK颜色值和RGB颜色相互转换的 下一篇:没有了
猜你喜欢
热门排行
精彩图文
  • PHP实现Soap通讯的方法
    PHP实现Soap通讯的方法
    本文实例讲述了PHP实现Soap通讯的方法。分享给大家供大家参考。具体实现方法如下: 复制代码 代码如下: ?php function HttpSoap($server, $port, $url, $namespace, $act
  • 男篮世界杯赔率php结合js实现点击超链接执行删除
    男篮世界杯赔率php结合js实现点击超链接执行删除
    如题,本次是要实现点击超链接实现执行js代码,并确认是否删除数据库数据,采用php。 首先链接数据库,查询数据库数据: 复制代码 代码如下: ?php $db
  • js出生日期 年月日级联菜单示例代码
    js出生日期 年月日级联菜单示例代码
    现在世界通用的公历(阳历)也经过一个长期演变的过程。我们先看,公历每个月的日数是固定的:"七前单大,八后双大"。也就是说,一、三、五、七、
  • php.ini 中文版
    php.ini 中文版
    ; 错误报告是按位的。或者将数字加起来得到想要的错误报告等级。 ; E_ALL - 所有的错误和警告 ; E_ERROR - 致命性运行时错 ; E_WARNING - 运行时警告(非致命性
  • PHP编码转换男篮世界杯赔率
    PHP编码转换男篮世界杯赔率
    SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS','CodePage') 男篮世界杯赔率,返回为936,即GBK编码。 936 简体中文GBK 950 繁体中文BIG5 437 美国/加拿大英语 932 日文