php中使用soap的建立共享接口
在网站需要建立共享接口的时候,可以使用soap。 下面介绍下在PHP中如何使用SOAP的完整过程。
1、确认PHP环境是否支持soap,检查php配置文件,把extension=php_soap.dll前的分号(;)去掉(windows);若是自己编译则编译时必须加上 --enable-soap选项。
2、建立soap服务端。 下面通过实例来说明如何建立服务端。
<?php
class service_class {
/**
* @return string
* */
function sayHello(){
return 'hello world';
}
/**
* @param string $name;
* @return string;
*/
function getName($param1, $param2){
return $param1.$param2;
}
}
$server = new SoapServer('testwsdl.wsdl'); //------------1
$server->setClass('service_class'); //------------2
$server->handle(); //------------3
?>
这里有一点需要注意的是:如果要在生成的wsdl文件有类型的话,应使用方法注释;(string,integer等).
(1)生成一个实例,参数"buildin.wsdl"是wsdl文件所在的位置,因为SoapServer还没有提供生成wsdl的实现,因些要指明细wsdl文件所在的位置.
(2)注册webservice的提供的方法,默认为类里面的所有方法
(3)处理请求;
到这里为止,在浏览器中访问本php文件,如果出现如果提示
"cant find HTTP_RAW_POST_DATA";则在创建soapServer前,插入以下代码
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
if (!isset($HTTP_RAW_POST_DATA)){
$HTTP_RAW_POST_DATA = file_get_contents(''php://input'');
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
此时如果提示bad request之类的错误,说明web service已经启动了.
3、创建wsdl文件
如果没有忘记前面提到的wsdl的话,此刻必会想即然不还不能生成wsdl文件的话,那那个buildin.wsdl从何而来呢,如果对zend studio熟悉的话,就会想到tool菜单下面的wsdl generator,对了,用这个工具
可以生成很帅的wsdl文件,
下面介绍详细生成方法:A、tools->wsdl gen
相关文档:
用 PHP 读取和编写 XML DOM
使用 DOM 库、SAX 解析器和正则表达式
文档选项
打印本页
将此页作为电子邮件发送
级别: 中级
Jack Herrington (jack_d_herrington@codegeneration.net), 高级软件工程师, "Code Generation Network"
2006 年 2 月 06 日
有许多技术可用于用 PHP 读取和编写 XML。本文提供了三种 ......
使用 PHP 处理 XML 配置文件
使用 XML 配置文件轻易地配置 PHP 应用程序和对象
级别: 中级
Vikram Vaswani, 创始人, Melonfire
2007 年 11 月 29 日
XML 为应用程序配置文件提供了一种便捷、易用的表达语言。但有时候将这些信息提取到 PHP 脚本中将会面对一个不小的挑战。这正是 XJConf for PHP 包出现的原因:它提 ......
最近在学习php,页面已经做好了,现在就是和虚拟机里C代码的通信,socket编程还可以,就是拿数据的处理,难,。
类的编程我不会,没有学过C++。本来打算用结构体的,可是PHP里面居然没有结构体,怎么办呢?继续努力吧
......
PHP缓存代码
好的页面缓存代码,可以减轻CPU和MYSQL负担。使用前,先在根目录创建“cache”文件夹,然后运行1.php,第一次运行和第二次运行速度差异很大。欢迎熟悉PHP的朋友使用和提意见。
使用方法:(请保存为temp.php)
<?php
include('arrcache.php');
$cache = new ArrCache('cache',5,'txt');
......