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 相关文章推荐
PHP+XML 制作简单的留言本 图文教程
Nov 02 PHP
PHP中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
Jul 09 PHP
php数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
Oct 31 PHP
PHP中几种常见的超时处理全面总结
Sep 11 PHP
php二维数组排序与默认自然排序的方法介绍
Apr 27 PHP
PHP与MYSQL中UTF8 中文排序示例代码
Oct 23 PHP
ThinkPHP中redirect用法分析
Dec 05 PHP
PHP微信公众号自动发送红包API
Jun 01 PHP
php查询及多条件查询
Feb 26 PHP
thinkphp框架page类与bootstrap分页(美化)
Jun 25 PHP
Laravel框架在本地虚拟机快速安装的方法详解
Jun 11 PHP
ThinkPHP 3使用OSS的方法
Jul 19 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
php生成图形(Libchart)实例
2013/11/06 PHP
PHP中error_log()函数的使用方法
2015/01/20 PHP
分享50个提高PHP执行效率的技巧
2015/12/26 PHP
PHP基于GD库实现的生成图片缩略图函数示例
2017/07/05 PHP
浅谈Laravel中的三种中间件的作用
2019/10/13 PHP
jQuery 菜单随滚条改为以定位方式(固定要浏览器顶部)
2012/05/24 Javascript
JAVASCRIPT函数作用域和提前声明 分享
2013/08/22 Javascript
Query中click(),bind(),live(),delegate()的区别
2013/11/19 Javascript
js中的for如何实现foreach中的遍历
2014/05/31 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
JSON字符串和对象之间的转换详解
2015/05/26 Javascript
JS取模、取商及取整运算方法示例
2016/10/13 Javascript
基于vue实现swipe分页组件实例
2017/05/25 Javascript
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
2017/07/22 jQuery
Echarts基本用法_动力节点Java学院整理
2017/08/11 Javascript
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
vue自定v-model实现表单数据双向绑定问题
2018/09/03 Javascript
JQuery+Bootstrap 自定义全屏Loading插件的示例demo
2019/07/03 jQuery
uploadify插件实现多个图片上传并预览
2019/09/30 Javascript
webpack3升级到webpack4遇到问题总结
2019/09/30 Javascript
vux-scroller实现移动端上拉加载功能过程解析
2019/10/08 Javascript
ES6 Symbol在对象中的作用实例分析
2020/06/06 Javascript
在webstorm中配置less的方法详解
2020/09/25 Javascript
[42:50]NB vs VP 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[38:39]KG vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python3.8对可迭代解包的改进及用法详解
2019/10/15 Python
PyTorch中反卷积的用法详解
2019/12/30 Python
Django如何在不停机的情况下创建索引
2020/08/02 Python
我们是伦敦女孩:WalG
2018/01/08 全球购物
澳大利亚领先的内衣店:Bendon Lingerie澳大利亚
2020/05/15 全球购物
捷克建筑材料网上商店:DEK.cz
2021/03/06 全球购物
大学军训通讯稿
2014/01/13 职场文书
高一物理教学反思
2014/01/24 职场文书
尊老爱亲美德少年事迹材料
2014/08/14 职场文书
党的群众路线教育实践活动学习笔记范文
2014/11/06 职场文书
新郎答谢词
2015/01/04 职场文书