1. 安装IIS对于PHP的支持,看 这里
2. 要调用Web Service需要nusoap支持,只要弄个nusoap.php就可以了,把它放在要运行的php文件能够引用的地方,比如我放在同一目录下。
可以从 这里下载最新版本的NuSoap,不过貌似最近sourceforge被和谐了?
3. 创建一个C#的web service,这个就不多说了,我用vs2008的wizard创建了一个最简单的,让它运行在:http://localhost/webservice1/service1.asmx
其中有个web method像这样的:
1
[WebMethod]
2
public
string
HelloWorld()
3
{
4
return "Hello World";
5
}

2

3



4

5

ok,一切就绪。在某php文件中如下写法:
1
<?
php
2
require_once
(
'
nusoap.php
'
);
3
/*
index.php
*/
4
$client
=
new
SoapClient(
'
http://localhost/webservice1/service1.asmx?wsdl
'
,
true
);
5
$str
=
$client
->
call(
'
HelloWorld
'
);
6
if
(
!
$err
=
$client
->
getError())
7
{
8
echo
"
return:
"
,
$str
[
'
HelloWorldResult
'
];
9
}
10
else
11
{
12
echo
"
error:
"
,
$err
;
13
}
14
?>
第一次搞这个php代码,只能意会了

2

3

4

5

6

7

8

9

10

11

12

13

14


这种方式不太好用,当使用PHPEclipse进行编译时,报告错误:
Debug Strict (PHP 5): /LocalizationTest/nusoap.php line 6496 - Assigning the return value of new by reference is deprecated
Compile Error: /LocalizationTest/nusoap.php line 7240 - Cannot redeclare class soapclient
有人说可以通过改名字的方式修改nusoap.php剔除这个错误,这样总是不方便,后来发现php5本身就支持SOAP调用Web Service:













