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
phpwind中的数据库操作类
Jan 02 PHP
php smarty模版引擎中变量操作符及使用方法
Dec 11 PHP
Apache 配置详解(最好的APACHE配置教程)
Jul 04 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
Sep 30 PHP
PHP中替换键名的简易方法示例详解
Jan 07 PHP
利用PHP函数计算中英文字符串长度的方法
Nov 11 PHP
php中simplexml_load_file函数用法实例
Nov 12 PHP
codeigniter中view通过循环显示数组数据的方法
Mar 20 PHP
php程序内部post数据的方法
Mar 31 PHP
使用PHP如何实现高效安全的ftp服务器(一)
Dec 20 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
Aug 17 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 正则匹配函数体
2009/08/25 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
Js实现自定义右键行为
2015/03/26 Javascript
JavaScript基本数据类型及值类型和引用类型
2015/08/25 Javascript
JavaScript对HTML DOM使用EventListener进行操作
2015/10/21 Javascript
学习JavaScript鼠标响应事件
2015/12/25 Javascript
jQuery操作json常用方法示例
2017/01/04 Javascript
Easyui使用Dialog行内按钮布局的实例
2017/07/27 Javascript
基于JS实现带动画效果的流程进度条
2018/06/01 Javascript
记React connect的几种写法(小结)
2018/09/18 Javascript
Vue CLI3.0中使用jQuery和Bootstrap的方法
2019/02/28 jQuery
ES6小技巧之代替lodash
2019/06/07 Javascript
layui动态绑定事件的方法
2019/09/20 Javascript
python笔记(1) 关于我们应不应该继续学习python
2012/10/24 Python
Python文件去除注释的方法
2015/05/25 Python
python实现学生管理系统
2018/01/11 Python
python奇偶行分开存储实现代码
2018/03/19 Python
python实现人人自动回复、抢沙发功能
2018/06/08 Python
python调用c++返回带成员指针的类指针实例
2019/12/12 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
2020/04/02 Python
多个版本的python共存时使用pip的正确做法
2020/10/26 Python
python自动化发送邮件实例讲解
2021/01/04 Python
Python try except finally资源回收的实现
2021/01/25 Python
css3背景_动力节点Java学院整理
2017/07/11 HTML / CSS
英国探险旅游专家:Explore
2018/12/20 全球购物
高级销售员求职信
2013/10/25 职场文书
学雷锋演讲稿
2014/03/04 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
行政执法队伍作风整顿个人剖析材料
2014/10/11 职场文书
会议营销主持词
2015/07/03 职场文书
广告策划的实习心得体会总结!
2019/07/22 职场文书
初中生入团申请书范文(五篇)
2019/10/16 职场文书
PHP解决高并发问题
2021/04/01 PHP
MySQL update set 和 and的区别
2021/05/08 MySQL
MySql新手入门的基本操作汇总
2021/05/13 MySQL
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
2021/06/30 SQL Server