PHP が Soap 通信、phpsoap 通信を実装する方法
この記事の例では、PHP で Soap 通信を実装する方法を説明します。参考のためにみんなで共有してください。具体的な実装方法は以下の通りです
コードをコピーします コードは次のとおりです:
function HttpSoap($server, $port, $url, $namespace, $action, $data) {
$fp = @fsockopen($server, $port);
if (!$fp) {
FALSE を返します;
} その他 {
$soapData = ConstructData($namespace, $action, $data);
$length = strlen($soapData);
$out = "POST $url HTTP/1.1rn";
$out .= "ホスト: $serverrn";
$out .= "コンテンツタイプ: text/xml; charset=utf-8rn";
$out .= "コンテンツの長さ: $lengthrn";
$out .= "SOAPAction: "$namespace$action"rnrn";
$out .= $soapData;
$out .= "rnrn";
fputs($fp, $out);
stream_set_timeout($fp, 2);
$header = "";
while($line = トリム(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) {
FALSE を返します;
}
$data を返します;
}
}
function ConstructData($namespace, $action, $data) {
$soapData = "
ん";
$soapData .= "rn";
$soapData .= " 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 .= " rn";
$soapData .= "";
$soapData を返す;
}
$data=配列(
'user'=>'Test', //バイナリデータを入力する必要がある場合は、BASE64 エンコードを使用してください
「パス」=>「テスト」
);
echo HttpSoap('sample.anyhost.com', 80, '/sampleSoap.asmx', 'http://tempuri.org/', 'logIn', $data);
?>
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。
XMLインポート時に生成されるインターフェースファイルのファイルの末尾
http://www.bkjia.com/PHPjc/904921.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/904921.html技術記事 PHPでSoap通信を実現する方法、phpsoap通信 この記事では、PHPでSoap通信を実現する方法について説明します。参考のためにみんなで共有してください。具体的な実装方法は以下の通りです コードをコピー コードは以下の通りです...