PHP实现WebService的简单示例和实现步骤


Posted in PHP onMarch 27, 2015

前段时间在webservice的问题上纠结了很长时间,本来想写在thinkphp的框架里面,可是怎么也实现不了,目前为止也仅仅是学会的没有框架的接口的开发。

在此资源共享一下步骤:

首先我创建的文件有:

api.php  api的接口类文件

api.wsdl  我创建产生的最后要调用的接口文件

cometrue.php 注册service api类内容的所有内容的执行文件

creat_wsdl.php  创建wsdl文件的执行方法文件

SoapDiscovery.class.php  必须要调用的soap类文件(可在网上查询下载)

第一步 :创建一个service的文件夹专门存放您的api接口项目

第二步:下载SoapDiscovery.class.php类文件,放在您的service文件夹里面

第三步:在service文件夹下面创建您自己api接口类文件api.php,文件内容示例如下:

<?php

class api{

    //我的测试接口方法

    public function test(){

        return "hello world";

    }

}

?>

好了,我们的接口写完之后,开始生成关于这个接口的wsdl文件

第四部:写一个生成wsdl文件的执行程序,在这里我来新建一个文件 creat_wsdl.php,同样放在service同级目录下面,内容如下:

<?php

include("api.php");

include("SoapDiscovery.class.php");

$disc = new SoapDiscovery('api','service');//api类文件名,service接口目录

$disc->getWSDL();

?>

第五步:执行creat_wsdl.php文件

PHP实现WebService的简单示例和实现步骤

然后,在service文件夹下面就多了一个api.wsdl的文件,如下图所示:

PHP实现WebService的简单示例和实现步骤

现在还没有完奥~

第六步:注册api类文件中的所有方法,在service文件夹下新建一个注册类文件的执行文件命名为:cometrue.php,文件内容如下:

<?php

$server = new SoapServer('api.wsdl', array('soap_version' => SOAP_1_2)); ##此处的Service.wsdl文件是上面生成的

$server->setClass("api"); //注册Service类的所有方法 

$server->handle();

?>

建完之后,执行该文件,此时便将类文件中所有的内容注册完成了,我们来测试一下这个接口

第七步 :在api的类文件api.php的最下面,加上调用的程序,加上之后api.php的文件内容如下:

<?php

class api{

    //我的测试接口方法

    public function test($a){

        return $a;

    }

}

$server = new SoapServer('api.wsdl', array('soap_version' => SOAP_1_2)); ##此处的Service.wsdl文件是上面生成的

$server->setClass("api"); //注册Service类的所有方法 

$server->handle();

?>

第七步:测试,在service外随意的位置(只要能访问得到)创建测试文件 命名为:test.php,文件内容如下:

<?php 

 $x = new SoapClient("http://rbac.local/service/api.php?wsdl"); //这里的链接换成你自己的访问链接

 echo $x->test('ok');

?>
PHP 相关文章推荐
如何过滤高亮显示非法字符
Oct 09 PHP
require(),include(),require_once()和include_once()的异同
Jan 02 PHP
PHP array 的加法操作代码
Jul 24 PHP
ThinkPHP的URL重写问题
Jun 22 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
Oct 17 PHP
php中异常处理方法小结
Jan 09 PHP
php构造函数与析构函数
Apr 23 PHP
PHP Filter过滤器全面解析
Aug 09 PHP
Laravel基础_关于view共享数据的示例讲解
Oct 14 PHP
Yii框架安装简明教程
May 15 PHP
PHP+MySql实现一个简单的留言板
Jul 19 PHP
PHP网站常见安全漏洞,及相应防范措施总结
Mar 01 PHP
使用PHPExcel操作Excel用法实例分析
Mar 26 #PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
Mar 26 #PHP
php实现RSA加密类实例
Mar 26 #PHP
PHP中实现crontab代码分享
Mar 26 #PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
Mar 26 #PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
Mar 25 #PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
Mar 25 #PHP
You might like
ubuntu 编译安装php 5.3.3+memcache的方法
2010/08/05 PHP
php中利用explode函数分割字符串到数组
2014/02/08 PHP
微信公众号开发客服接口实例代码
2016/10/21 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
2020/03/23 PHP
PHP数组Key强制类型转换实现原理解析
2020/09/01 PHP
再谈javascript 动态添加样式规则 W3C校检
2009/12/25 Javascript
js星星评分效果
2014/07/24 Javascript
jQuery分组选择器用法实例
2014/12/23 Javascript
jQuery实现跨域iframe接口方法调用
2015/03/14 Javascript
JavaScript实现url参数转成json形式
2016/09/25 Javascript
JavaScript中setTimeout的那些事儿
2016/11/14 Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
2016/12/17 Javascript
JS查找英文文章中出现频率最高的单词
2017/03/20 Javascript
用Node提供静态文件服务的方法
2018/07/06 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
使用webpack打包后的vue项目如何正确运行(express)
2018/10/26 Javascript
js DOM的事件常见操作实例详解
2019/12/16 Javascript
JS如何实现手机端输入验证码效果
2020/05/13 Javascript
Python多线程和队列操作实例
2015/06/21 Python
Python中如何获取类属性的列表
2016/12/26 Python
import的本质解析
2017/10/30 Python
python3实现跳一跳点击跳跃
2018/01/08 Python
css3 按钮 利用css3实现超酷下载按钮
2013/03/18 HTML / CSS
使用html5+css3来实现slider切换效果告别javascript+css
2013/01/08 HTML / CSS
世界上最大的汽车共享网站:Zipcar
2017/01/14 全球购物
美国殿堂级滑板、冲浪、滑雪服装品牌:Volcom(钻石)
2017/04/20 全球购物
美国著名手表网站:Timepiece
2017/11/15 全球购物
自动化工程专业个人应聘自荐信
2013/09/26 职场文书
自我评价是什么
2014/01/04 职场文书
员工安全生产责任书
2014/07/22 职场文书
观看信仰心得体会
2014/09/04 职场文书
申报优秀教师材料
2014/12/16 职场文书
运动会广播稿200字
2015/08/19 职场文书
《秋天的图画》教学反思
2016/02/19 职场文书
python爬虫框架feapde的使用简介
2021/04/20 Python
spring IOC容器的Bean管理XML自动装配过程
2022/05/30 Java/Android