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 相关文章推荐
excellent!――ASCII Art(由目标图象生成ascii)
Feb 20 PHP
php GeoIP的使用教程
Mar 09 PHP
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
Aug 07 PHP
测试php连接mysql是否成功的代码分享
Jan 24 PHP
thinkphp的静态缓存用法分析
Nov 29 PHP
PHP转盘抽奖接口实例
Feb 09 PHP
PHP ajax 异步执行不等待执行结果的处理方法
May 27 PHP
PHP中创建和验证哈希的简单方法实探
Jul 06 PHP
举例讲解PHP面对对象编程的多态
Aug 12 PHP
php用户注册信息验证正则表达式
Nov 12 PHP
yii权限控制的方法(三种方法)
Dec 28 PHP
Zend Framework入门教程之Zend_Config组件用法详解
Dec 09 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来处理多个提交任务
2008/05/08 PHP
php下利用curl判断远程文件是否存在的实现代码
2011/10/08 PHP
PHP 导出Excel示例分享
2014/08/18 PHP
一个完整的PHP类包含的七种语法说明
2015/06/04 PHP
PHP sleep()函数, usleep()函数
2016/08/25 PHP
DOM下的节点属性和操作小结
2009/05/14 Javascript
用js脚本控制asp.net下treeview的NodeCheck的实现代码
2010/03/02 Javascript
JS 事件绑定函数代码
2010/04/28 Javascript
Three.js源码阅读笔记(物体是如何组织的)
2012/12/27 Javascript
js中关于一个分号的崩溃示例
2013/11/11 Javascript
JavaScript中的字符串操作详解
2013/11/12 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
jQuery取得设置清空select选择的文本与值
2014/07/08 Javascript
js获取浏览器基本信息大全
2014/11/27 Javascript
原生js实现模拟滚动条
2015/06/15 Javascript
javascript显示中文日期的方法
2015/06/18 Javascript
javascript+HTML5的Canvas实现Lab单车动画效果
2015/08/07 Javascript
学习JavaScript设计模式(链式调用)
2015/11/26 Javascript
Easyui 之 Treegrid 笔记
2016/04/29 Javascript
vue使用axios时关于this的指向问题详解
2017/12/22 Javascript
vue 设置proxyTable参数进行代理跨域
2018/04/09 Javascript
checkbox在vue中的用法小结
2018/11/13 Javascript
Vue获取页面元素的相对位置的方法示例
2020/02/05 Javascript
python下函数参数的传递(参数带星号的说明)
2010/09/19 Python
python中利用Future对象回调别的函数示例代码
2017/09/07 Python
python实现字符串中字符分类及个数统计
2018/09/28 Python
python地震数据可视化详解
2019/06/18 Python
python线程池如何使用
2020/05/28 Python
python爬取抖音视频的实例分析
2021/01/19 Python
世界领先的艺术图书出版社:TASCHEN
2018/07/23 全球购物
Bailey帽子官方商店:Bailey Hats
2018/09/25 全球购物
标准导师推荐信(医学类)
2013/10/28 职场文书
购房委托书范本
2014/09/18 职场文书
小学入学感言
2015/08/01 职场文书
Java org.w3c.dom.Document 类方法引用报错
2021/08/07 Java/Android
sass 常用备忘案例详解
2021/09/15 HTML / CSS