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
php中使用preg_replace函数匹配图片并加上链接的方法
Feb 06 PHP
PHP 读取Postgresql中的数组
Apr 14 PHP
php对二维数组进行排序的简单实例
Dec 19 PHP
ThinkPHP中的create方法与自动令牌验证实例教程
Aug 22 PHP
phplot生成图片类用法详解
Jan 06 PHP
Laravel 5框架学习之Eloquent (laravel 的ORM)
Apr 08 PHP
浅谈php提交form表单
Jul 01 PHP
php 自定义错误日志实例详解
Nov 12 PHP
浅谈PHP发送HTTP请求的几种方式
Jul 25 PHP
php实现的AES加密类定义与用法示例
Jan 29 PHP
PHP并发场景的三种解决方案代码实例
Feb 27 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+MYSQL 出现乱码的解决方法
2008/08/08 PHP
PHP 作用域解析运算符(::)
2010/07/27 PHP
解析php curl_setopt 函数的相关应用及介绍
2013/06/17 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
2015/12/18 PHP
php实现的错误处理封装类实例
2017/06/20 PHP
PHP 实现手机端APP支付宝支付功能
2018/06/07 PHP
php中数组最简单的使用方法
2020/12/27 PHP
兼容ie和firefox js关闭代码
2008/12/11 Javascript
JavaScript之IE的fireEvent方法详细解析
2013/11/20 Javascript
JQuery中绑定事件(bind())和移除事件(unbind())
2015/02/27 Javascript
JavaScript实现判断图片是否加载完成的3种方法整理
2015/03/13 Javascript
jquery性能优化高级技巧
2015/08/24 Javascript
jQuery unbind()方法实例详解
2016/01/19 Javascript
JS中的二叉树遍历详解
2016/03/18 Javascript
浅析jQuery Ajax通用js封装
2016/06/22 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
2018/07/18 Javascript
vue设置动态请求地址的例子
2019/11/01 Javascript
利用python发送和接收邮件
2016/09/27 Python
Python基于socket实现简单的即时通讯功能示例
2018/01/16 Python
python实现两个文件合并功能
2018/04/01 Python
利用Python如何批量更新服务器文件
2018/07/29 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
2020/03/12 Python
Python自动化测试笔试面试题精选
2020/03/12 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
汽车检测与维修专业求职信
2013/10/30 职场文书
《中华少年》教学反思
2014/02/15 职场文书
厨师个人自我鉴定范文
2014/04/19 职场文书
平安校园建设方案
2014/05/02 职场文书
班级标语大全
2014/06/21 职场文书
2014年实习期工作总结
2014/11/27 职场文书
合作意向协议书
2015/01/29 职场文书
经费申请报告范文
2015/05/18 职场文书
商务宴会祝酒词
2015/08/11 职场文书
2016年庆“七一”主题党日活动总结
2016/04/05 职场文书
Python+uiautomator2实现自动刷抖音视频功能
2021/04/29 Python