PHP实现WebService的简单示例和实现步骤

 这篇文章主要介绍了PHP实现WebService的简单示例和实现步骤,本文直接给出示例代码并分步骤讲解,需要的朋友可以参考下

 
 

前段时间在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文件

然后,在service文件夹下面就多了一个api.wsdl的文件,如下图所示:

现在还没有完奥~

第六步:注册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');
?> 

时间: 2024-09-01 12:55:33

PHP实现WebService的简单示例和实现步骤的相关文章

PHP实现WebService的简单示例和实现步骤_php实例

前段时间在webservice的问题上纠结了很长时间,本来想写在thinkphp的框架里面,可是怎么也实现不了,目前为止也仅仅是学会的没有框架的接口的开发. 在此资源共享一下步骤: 首先我创建的文件有: api.php  api的接口类文件 api.wsdl  我创建产生的最后要调用的接口文件 cometrue.php 注册service api类内容的所有内容的执行文件 creat_wsdl.php  创建wsdl文件的执行方法文件 SoapDiscovery.class.php  必须要调用

WebService 的简单封装接口调用方法

  这篇文章主要介绍了WebService 的简单封装接口调用方法,主要是通过简单的sql语句来查询数据库,从而返回dataset,十分简单实用,有需要的小伙伴可以参考下. 此方法完成了简单WebService 的简单调用封装,实现了简单Webservice简单调用的统一操作,避免了每增加一个操作都必须增加一个接口方法 的囧状! ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 3

PHP静态推延绑定简单示例

  PHP静态延迟绑定简单示例 没怎么用过这个新特性,其实也不算新啦,试试吧,现在静态类的继承很方便了 class A { protected static $def = '123456'; public static function test() { echo get_class(new static); } public static function test2() { echo static::$def; } } class B extends A { protected static

spark sql简单示例

运行环境 集群环境:CDH5.3.0 具体JAR版本如下: spark版本:1.2.0-cdh5.3.0 hive版本:0.13.1-cdh5.3.0 hadoop版本:2.5.0-cdh5.3.0 spark sql的JAVA版简单示例 spark sql直接查询JSON格式的数据 spark sql的自定义函数 spark sql查询hive上面的表 import java.util.ArrayList; import java.util.List; import org.apache.sp

在c#使用IOCP(完成端口)的简单示例

这次给大家演示一下利用IOCP的在线程间传递数据的例子,顺便打算讲一些细节和注意的地方. 概述:这里主要使用IOCP的三个API,CreateIoCompletionPort,PostQueuedCompletionStatus,GetQueuedCompletionStatus,第一个是用来创建一个完成端口对象,第二个是向一个端口发送数据,第三个是接受数据,基本上用着三个函数,就可以写一个使用IOCP的简单示例. 其中完成端口一个内核对象,所以创建的时候会耗费性能,CPU得切换到内核模式,而且

安卓UI设计与开发教程 顶部标题栏(一)ActionBar详细概述和简单示例

一.ActionBar介绍 在Android 3.0中 除了我们重点讲解的Fragment外,Action Bar也是一个非常重要的交互元素,Action Bar取代了传统的tittle bar和menu,在程序运行中一直置于顶部,对于Android平板设备来说屏幕更大它的标题使用Action Bar来设计 可以展示更多丰富的内容,方便操控. 二.ActionBar的功能 用图的方式来讲解它的功能 开发教程 顶部标题栏(一)ActionBar详细概述和简单示例-actionbar隐藏标题栏"&g

添加和删除HTML节点的简单示例

 添加和删除HTML节点的简单示例 <input type="button" onclick="appendnode()" value="添加节点"> <input type="button" onclick="removenode()" value="删除节点"> <div id="result"></div> <

php 5.6版本中编写一个PHP扩展的简单示例

 这篇文章主要介绍了php 5.6版本中编写一个PHP扩展的简单示例,本文给出扩展实现代码.编译方法.配置方法和使用例子等内容,需要的朋友可以参考下     有时候在php本身没有满足需求的api时候,需要自己写相应的扩展,扩展写完之后进行编译,即可加入自己的开发环境中,扩展php的功能. 这里实现一个连接字符串和int型数的连接操作的简单扩展. 首先,下载最新的php源码安装包,进入ext/目录,新建extstrcat.def: 代码如下: string extstrcat(string st

PHP 使用redis简单示例分享

 这篇文章主要介绍了PHP 使用redis简单示例分享,主要是给大家展示下,php使用redis的方法,有需要的小伙伴们参考下.     示例很简单,注释里也都做了说明,这里就不多废话了.   代码如下: <?php /*从平台获取数据库名*/ $dbname = ""; /*从环境变量里取host,port,user,pwd*/ $host = ''; $port = ''; $user = ''; $pwd = ''; try { /*建立连接后,在进行集合操作前,需要先进行