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 相关文章推荐
用文本作数据处理
Oct 09 PHP
java EJB 加密与解密原理的一个例子
Jan 11 PHP
php下使用iconv需要注意的问题
Nov 20 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
Nov 10 PHP
PHP实现文件下载详解
Nov 27 PHP
PHP比你想象的好得多
Nov 27 PHP
学习php开源项目的源码指南
Dec 21 PHP
PHP实现的蚂蚁爬杆路径算法代码
Dec 03 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
Apr 22 PHP
Yii2框架实现数据库常用操作总结
Feb 08 PHP
PHP读取word文档的方法分析【基于COM组件】
Aug 01 PHP
PHP copy函数使用案例代码解析
Sep 01 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伪造referer突破网盘禁止外连的代码
2008/06/15 PHP
应用开发中涉及到的css和php笔记分享
2011/08/02 PHP
PHP面向对象自动加载机制原理与用法分析
2016/10/14 PHP
PHP count()函数讲解
2019/02/03 PHP
10个新的最有前途的JavaScript框架
2009/03/12 Javascript
javascript多种数据类型表格排序代码分析
2010/09/11 Javascript
JQuery入门——用one()方法绑定事件处理函数(仅触发一次)
2013/02/05 Javascript
JS滚轮事件onmousewheel使用介绍
2013/11/01 Javascript
jquery序列化表单以及回调函数的使用示例
2014/07/02 Javascript
node.js中的fs.exists方法使用说明
2014/12/17 Javascript
jQuery使用empty()方法删除元素及其所有子元素的方法
2015/03/26 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
2015/09/24 Javascript
JavaScript实现图片瀑布流和底部刷新
2017/01/02 Javascript
基于jQuery插件jqzoom实现的图片放大镜效果示例
2017/01/23 Javascript
js指定步长实现单方向匀速运动
2017/07/17 Javascript
浅谈Angular6的服务和依赖注入
2018/06/27 Javascript
Python异常处理总结
2014/08/15 Python
Python3实现连接SQLite数据库的方法
2014/08/23 Python
Python 字符串大小写转换的简单实例
2017/01/21 Python
Python实现定时精度可调节的定时器
2018/04/15 Python
python中不能连接超时的问题及解决方法
2018/06/10 Python
python通过SSH登陆linux并操作的实现
2019/10/10 Python
基于python cut和qcut的用法及区别详解
2019/11/22 Python
python判断两个序列的成员是否一样的实例代码
2020/03/01 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
Python之Matplotlib文字与注释的使用方法
2020/06/18 Python
keras CNN卷积核可视化,热度图教程
2020/06/22 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
2020/09/03 Python
Python读写Excel表格的方法
2021/03/02 Python
详解CSS3中使用gradient实现渐变效果的方法
2015/08/18 HTML / CSS
size?荷兰官方网站:英国高级运动鞋精品店
2020/07/24 全球购物
三方合作协议书范本
2014/04/18 职场文书
小学生运动会报道稿
2014/09/12 职场文书
优秀团员主要事迹范文
2015/11/05 职场文书
2016年全国爱牙日宣传活动总结
2016/04/05 职场文书
oracle数据库去除重复数据
2022/05/20 Oracle