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实现无限级分类 | 树型显示分类关系
Nov 19 PHP
DedeCms模板安装/制作概述
Mar 11 PHP
php分页示例代码
Mar 19 PHP
PHP 分页类(模仿google)-面试题目解答
Sep 13 PHP
php中判断字符串是否全是中文或含有中文的实现代码
Sep 16 PHP
微信扫描二维码登录网站代码示例
Dec 30 PHP
php上传图片获取路径及给表单字段赋值的方法
Jan 23 PHP
PHP+MySQL存储数据常见中文乱码问题小结
Jun 13 PHP
PHP如何读取由JavaScript设置的Cookie
Mar 22 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 PHP
PHP实现字符串大小写转函数的功能实例
Feb 06 PHP
PHP读取文件,解决中文乱码UTF-8的方法分析
Jan 22 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
ThinkPHP和UCenter接口冲突的解决方法
2016/07/25 PHP
PHP使用GD库输出汉字的方法【测试可用】
2016/11/10 PHP
解决FLASH需要点击激活的代码
2006/12/20 Javascript
jQuery中nextUntil()方法用法实例
2015/01/07 Javascript
javascript手风琴下拉菜单实现代码
2015/11/12 Javascript
解析Node.js异常处理中domain模块的使用方法
2016/02/16 Javascript
Javascript生成全局唯一标识符(GUID,UUID)的方法
2016/02/27 Javascript
jQuery封装placeholder效果实现方法,让低版本浏览器支持该效果
2017/07/08 jQuery
vue使用jsonp抓取qq音乐数据的方法
2018/06/21 Javascript
vue cli使用融云实现聊天功能的实例代码
2019/04/19 Javascript
layui table 获取分页 limit的方法
2019/09/20 Javascript
json_decode 索引为数字时自动排序问题解决方法
2020/03/28 Javascript
[03:45]Newbee战队出征西雅图 决战2016国际邀请赛
2016/08/02 DOTA
[41:41]TFT vs Secret Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
Python写的一个定时重跑获取数据库数据
2016/12/28 Python
浅谈scrapy 的基本命令介绍
2017/06/13 Python
基于python中pygame模块的Linux下安装过程(详解)
2017/11/09 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
2018/01/04 Python
Python实现的简单排列组合算法示例
2018/07/04 Python
Django模型序列化返回自然主键值示例代码
2019/06/12 Python
python multiprocessing模块用法及原理介绍
2019/08/20 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
2020/05/11 Python
H5调用相机拍照并压缩图片的实例代码
2017/07/20 HTML / CSS
驴妈妈旅游网:中国新型的B2C旅游电子商务网站
2016/08/16 全球购物
德国百年厨具品牌WMF美国站:WMF美国
2016/09/12 全球购物
M.M.LaFleur官网:美国职业女装品牌
2020/10/27 全球购物
Internet体系结构
2014/12/21 面试题
保健品市场营销方案
2014/03/31 职场文书
汽车运用工程专业求职信
2014/06/18 职场文书
医院病假条范文
2015/08/17 职场文书
2019年二手房买卖合同范本
2019/10/14 职场文书
导游词之茶卡盐湖
2019/11/26 职场文书
CSS精灵图的原理与使用方法介绍
2022/03/17 HTML / CSS
【海涛教你打DOTA】剑圣第一人称视角解说
2022/04/01 DOTA
Pillow图像处理库安装及使用
2022/04/12 Python
vue postcss-px2rem 自适应布局
2022/05/15 Vue.js