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与MySQL开发中页面乱码的产生与解决
Mar 27 PHP
浅析关于PHP位运算的简单权限设计
Jun 30 PHP
三种php连接access数据库方法
Nov 11 PHP
php生成shtml类用法实例
Dec 09 PHP
如何使用纯PHP实现定时器任务(Timer)
Jul 31 PHP
thinkphp微信开发(消息加密解密)
Dec 02 PHP
PHP中文字符串截断无乱码解决方法
Oct 10 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
Oct 17 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
Jun 10 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
Aug 28 PHP
PHP实现动态删除XML数据的方法示例
Mar 30 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 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
YII Framework教程之异常处理详解
2016/03/14 PHP
PHP安全下载文件的方法
2016/04/07 PHP
Thinkphp框架中D方法与M方法的区别
2016/12/23 PHP
使用PHP开发留言板功能
2019/11/19 PHP
javascript写的一个链表实现代码
2009/10/25 Javascript
js取值中form.all和不加all的区别介绍
2014/01/20 Javascript
JavaScript中获取高度和宽度函数总结
2014/10/08 Javascript
JavaScript设计模式之原型模式(Object.create与prototype)介绍
2014/12/28 Javascript
jQuery实现冻结表头的方法
2015/03/09 Javascript
jQuery代码实现发展历程时间轴特效
2015/07/30 Javascript
AngularJS过滤器详解及示例代码
2016/08/16 Javascript
JQuery和PHP结合实现动态进度条上传显示
2016/11/23 Javascript
关于js中的鼠标事件总结
2017/07/11 Javascript
Vue创建头部组件示例代码详解
2018/10/23 Javascript
小谈angular ng deploy的实现
2020/04/07 Javascript
Vue组件间数据传递的方式(3种)
2020/07/13 Javascript
python 动态获取当前运行的类名和函数名的方法
2014/04/15 Python
Python中django学习心得
2017/12/06 Python
python3.5安装python3-tk详解
2019/04/26 Python
华为校园招聘上机笔试题 扑克牌大小(python)
2020/04/22 Python
使用Python实现跳一跳自动跳跃功能
2019/07/10 Python
Python企业编码生成系统之主程序模块设计详解
2019/07/26 Python
python实现银行管理系统
2019/10/25 Python
10张动图学会python循环与递归问题
2021/02/06 Python
佳能英国官方网站:Canon UK
2017/08/08 全球购物
东南亚冒险旅行与活动:Adventoro
2019/10/16 全球购物
Bata印度官网:源自欧洲舒适鞋履品牌
2020/01/30 全球购物
Java中compareTo和compare的区别
2016/04/12 面试题
初中学校军训方案
2014/05/09 职场文书
研究生求职自荐书
2014/06/23 职场文书
文员转正自我鉴定怎么写
2014/09/29 职场文书
2014年民警工作总结
2014/11/25 职场文书
2014年新农村建设工作总结
2014/12/01 职场文书
2015毕业生自我评价范文
2015/03/02 职场文书
技术入股协议书
2016/03/22 职场文书
Mysql基础之常见函数
2021/04/22 MySQL