1.问题描述:
今天运行一个demo代码,出现了“Class 'SoapClient' not found”错误。
2.原因分析:
搜索了一下,需要启动soap服务。
3.解决方法:
第一步到php安装目录下的拓展子目录(一般为ext)查看php_soap.dll是否存在的,存在继续第二步,不存在去网上下载php_soap.dll并放到拓展子目录下继续第二步;
第二步APACHE开启web service服务即更改php.ini文件
extension=php_openssl.dll
extension=php_soap.dll
php.ini 这2项前的;号去掉,重新启动APACHE;
4.备注:
有可能会出现“Class 'SoapClient' not found”的错误,我自己调试是由于命名空间的使用问题 要用 \soapClient 方式调用才行。
5.调用方式
<?php
header ( "Content-Type: text/html; charset=utf-8" );
/*
* 指定WebService路径并初始化一个WebService客户端
*/
$ws = "http://ip:端口/WebServiceurl?wsdl";//webservice服务的地址
$client = new SoapClient ($ws);
/*
* 获取SoapClient对象引用的服务所提供的所有方法
*/
echo ("SOAP服务器提供的开放函数:");
echo ('<pre>');
var_dump ( $client->__getFunctions () );//获取服务器上提供的方法
echo ('</pre>');
echo ("SOAP服务器提供的Type:");
echo ('<pre>');
var_dump ( $client->__getTypes () );//获取服务器上数据类型
echo ('</pre>');
echo ("执行GetGUIDNode的结果:");
$result=$client->functionname();//调用的方法
print_r($result);
?>