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 开源AJAX框架14种
Aug 24 PHP
php实现给图片加灰色半透明效果的方法
Oct 20 PHP
PHP实现搜索相似图片
Sep 22 PHP
10款实用的PHP开源工具
Oct 23 PHP
PHP中Restful api 错误提示返回值实现思路
Apr 12 PHP
php遍历解析xml字符串的方法
May 05 PHP
PHP操作mysql数据库分表的方法
Jun 09 PHP
静态html文件执行php语句的方法(推荐)
Nov 21 PHP
laravel 框架配置404等异常页面
Jan 07 PHP
PHP中用Trait封装单例模式的实现
Dec 18 PHP
laravel框架模型和数据库基础操作实例详解
Jan 25 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
Mar 26 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连接Oracle数据库
2006/10/09 PHP
jQuery+CSS 实现的超Sexy下拉菜单
2010/01/17 Javascript
自编jQuery插件实现模拟alert和confirm
2014/09/01 Javascript
jQuery制作效果超棒的手风琴折叠菜单
2015/04/03 Javascript
jquery使整个div区域可以点击的方法
2015/06/24 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
全面解析Bootstrap中tooltip、popover的使用方法
2016/06/13 Javascript
JavaScript中push(),join() 函数 实例详解
2016/09/06 Javascript
HTML5canvas 绘制一个圆环形的进度表示实例
2016/12/16 Javascript
JavaScript实现滑动导航栏效果
2017/08/30 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
vue.extend实现alert模态框弹窗组件
2018/04/28 Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
2018/07/26 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
Vue2 添加数据可视化支持的方法步骤
2019/01/02 Javascript
js实现弹出框的拖拽效果实例代码详解
2019/04/16 Javascript
python实现提取百度搜索结果的方法
2015/05/19 Python
Python实现计算字符串中出现次数最多的字符示例
2019/01/21 Python
python dlib人脸识别代码实例
2019/04/04 Python
django删除表重建的实现方法
2019/08/28 Python
python opencv如何实现图片绘制
2020/01/19 Python
通俗易懂了解Python装饰器原理
2020/09/17 Python
在 Python 中使用 7zip 备份文件的操作
2020/12/11 Python
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
美国知名艺术画网站:Art.com
2017/02/09 全球购物
英国时尚运动品牌的合集:The Sports Edit
2017/12/20 全球购物
ONLY瑞典官网:世界知名服装品牌
2018/06/19 全球购物
Ashford台湾:以折扣价提供奢华的男女用表款
2019/12/04 全球购物
哈弗商学院毕业生求职信
2014/02/26 职场文书
团委竞选演讲稿
2014/04/24 职场文书
大学生活动总结模板
2014/07/02 职场文书
优秀班集体申报材料
2014/12/25 职场文书
vue实现无缝轮播效果(跑马灯)
2021/05/14 Vue.js
Python 数据结构之十大经典排序算法一文通关
2021/10/16 Python
为自由献出你的心脏!「进击的巨人展 FINAL」2022年6月在台开展
2022/04/13 日漫
python单向链表实例详解
2022/05/25 Python