转一个,现在还不懂,不过好象很快会用得着。

首先大家要简单了解了何谓webservice,接下来就做两个非常简单的例 子,webservice还是逃不开server端与client端。

我测试的环境为:apache2.2.11 php5.2.10

做这个测试之前,要确认你的php配置文件中已经将soap扩展打开,即extension=php_soap.dll;
OK 现在我们来体验webservice

//server端 serverSoap.php 

$soap = new SoapServer (null , array ('uri' => "http://192.168.1.179/" ));//This uri is your SERVER ip. 
$soap -> addFunction ('minus_func' );                                                 //Register the function 
$soap -> addFunction (SOAP_FUNCTIONS_ALL );
$soap -> handle ();

function minus_func ($i , $j ){ 
    $res = $i - $j ;
    return $res ;
} 

//client端 clientSoap.php 
try { 
    $client = new SoapClient (null , 
        array ('location' => "http://192.168.1.179/test/serverSoap.php" , 'uri' => "http://127.0.0.1/" )
    );
    echo $client -> minus_func (100 , 99 );

} catch (SoapFault $fault ){ 
    echo "Error: " , $fault -> faultcode , ", string: " , $fault -> faultstring ;
} 

这是客户端调用服务器端函数的例子,我们再搞个class的。

//server端 serverSoap.php 
$classExample = array ();

$soap = new SoapServer (null , array ('uri' => "http://192.168.1.179/" , 'classExample' => $classExample ));
$soap -> setClass ('chesterClass' );
$soap -> handle ();

class chesterClass { 
    public $name = 'Chester' ;

    function getName () { 
        return $this -> name ;
    } 
} 

//client端 clientSoap.php 

try { 
    $client = new SoapClient (null , 
        array ('location' => "http://192.168.1.179/test/serverSoap.php" , 'uri' => "http://127.0.0.1/" )
    );
    echo $client -> getName ();

} catch (SoapFault $fault ){ 
    echo "Error: " , $fault -> faultcode , ", string: " , $fault -> faultstring ;
} 


以上代码我已经测试通过。

posted on 2012-10-29 14:30  互联浪子  阅读(173)  评论(0编辑  收藏  举报