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的分页功能
Mar 21 PHP
PHP编实现程动态图像的创建代码
Sep 28 PHP
php生成xml简单实例代码
Dec 16 PHP
ThinkPHP自动填充实现无限级分类的方法
Aug 22 PHP
php类中的各种拦截器用法分析
Nov 03 PHP
php递归遍历删除文件的方法
Apr 17 PHP
PHP简单处理表单输入的特殊字符的方法
Feb 03 PHP
php简单获取复选框值的方法
May 11 PHP
php版微信公众账号第三方管理工具开发简明教程
Sep 23 PHP
php结合ajax实现手机发红包的案例
Oct 13 PHP
详解php中curl返回false的解决办法
Mar 18 PHP
laravel入门知识点整理
Sep 15 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 XPath对XML文件查找及修改实现代码
2011/07/27 PHP
解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
2013/07/03 PHP
linux实现php定时执行cron任务详解
2013/12/24 PHP
php实现的单一入口应用程序实例分析
2015/09/23 PHP
PHP 文件锁与进程锁的使用示例
2017/08/07 PHP
Jquery AutoComplete自动完成 的使用方法实例
2010/03/19 Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
2013/11/21 Javascript
用Jquery实现滚动新闻
2014/02/12 Javascript
Javascript高级技巧分享
2014/02/25 Javascript
javascript对中文按照拼音排序代码
2014/08/20 Javascript
js实现延迟加载的方法
2015/06/24 Javascript
JavaScript取得WEB安全颜色列表的方法
2015/07/14 Javascript
angular十大常见问题
2017/03/07 Javascript
深入理解Webpack 中路径的配置
2017/06/17 Javascript
浅谈angular.js跨域post解决方案
2017/08/30 Javascript
layer弹出层 iframe层去掉滚动条的实例代码
2018/08/17 Javascript
vue结合element-ui使用示例
2019/01/24 Javascript
vue基础之data存储数据及v-for循环用法示例
2019/03/08 Javascript
TypeScript开发Node.js程序的方法
2019/04/30 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
vue实现购物车的监听
2020/04/20 Javascript
详解vue3.0 diff算法的使用(超详细)
2020/07/01 Javascript
[01:33]真香警告!DOTA2勇士令状不朽珍藏Ⅱ饰品欣赏
2018/06/26 DOTA
python获得两个数组交集、并集、差集的方法
2015/03/27 Python
python中map、any、all函数用法分析
2015/04/21 Python
Django处理文件上传File Uploads的实例
2018/05/28 Python
python lambda表达式在sort函数中的使用详解
2019/08/28 Python
Python绘图实现台风路径可视化代码实例
2020/10/23 Python
python openCV自制绘画板
2020/10/27 Python
运动鞋、街头服装、手表和手袋的实时市场:StockX
2020/11/25 全球购物
大学自我鉴定范文
2013/12/26 职场文书
大学生自我鉴定范文
2013/12/28 职场文书
人力资源专员岗位职责
2014/01/30 职场文书
小学毕业演讲稿
2014/04/25 职场文书
党员干部学习三严三实心得体会
2016/01/05 职场文书
position:sticky 粘性定位的几种巧妙应用详解
2021/04/24 HTML / CSS