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 相关文章推荐
NO3第三帝国留言簿制作过程
Oct 09 PHP
PHP将DateTime对象转化为友好时间显示的实现代码
Sep 20 PHP
php在线代理转向代码
May 05 PHP
PHP页面间参数传递的四种方法详解
Jun 09 PHP
探讨Hessian在PHP中的使用分析
Jun 13 PHP
PHP的curl实现get,post和cookie(实例介绍)
Jun 17 PHP
thinkphp实现发送邮件密码找回功能实例
Dec 01 PHP
php生成与读取excel文件
Oct 14 PHP
完美解决thinkphp唯一索引重复时出错的问题
Mar 31 PHP
PHP基于SimpleXML生成和解析xml的方法示例
Jul 17 PHP
PHP fclose函数用法总结
Feb 15 PHP
PHP实现的AES 128位加密算法示例
Sep 16 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获取服务器时间的实现代码
2013/06/07 PHP
PHP面向对象之领域模型+数据映射器实例(分析)
2017/06/21 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
Javascript 布尔型分析
2008/12/22 Javascript
jQuery效果 slideToggle() 方法(在隐藏和显示之间切换)
2011/06/28 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
原生js编写设为首页兼容ie、火狐和谷歌
2014/06/05 Javascript
手机端网页点击链接触发自动拨打或保存电话的示例代码
2014/08/15 Javascript
JS实现网页表格自动变大缩小的方法
2015/03/09 Javascript
浅析ES6的八进制与二进制整数字面量
2016/08/30 Javascript
关于Angular2 + node接口调试的解决方案
2017/05/28 Javascript
VueJs单页应用实现微信网页授权及微信分享功能示例
2017/07/26 Javascript
Vuex的初探与实战小结
2018/11/26 Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
2019/05/05 Javascript
原生JavaScript实现滑动拖动验证的示例代码
2019/12/06 Javascript
微信小程序实现多选框全选与反全选及购物车中删除选中的商品功能
2019/12/17 Javascript
vue项目前端微信JSAPI与外部H5支付相关实现过程及常见问题
2020/04/14 Javascript
微信小程序实现音乐播放页面布局
2020/12/11 Javascript
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
Django2.1.7 查询数据返回json格式的实现
2020/12/29 Python
CSS3 完美实现圆角效果
2009/07/13 HTML / CSS
有机童装:Toby Tiger
2018/05/23 全球购物
快时尚眼镜品牌,全国连锁眼镜店:LOHO眼镜生活
2018/10/08 全球购物
GE设备配件:GE Appliance Parts(家电零件、配件和滤水器)
2018/11/28 全球购物
学习委员自我鉴定
2014/01/13 职场文书
婚礼新郎父母答谢词
2014/01/16 职场文书
学生宿舍管理制度
2014/01/30 职场文书
工程质量月活动方案
2014/02/19 职场文书
《秋姑娘的信》教学反思
2014/02/28 职场文书
放假通知
2015/04/14 职场文书
民事答辩状格式范文
2015/05/21 职场文书
2015年房产销售工作总结范文
2015/05/22 职场文书
2015年学校教研室主任工作总结
2015/07/20 职场文书
goland 设置project gopath的操作
2021/05/06 Golang
实操Python爬取觅知网素材图片示例
2021/11/27 Python
MySQL数据库配置信息查看与修改方法详解
2022/06/25 MySQL