您的位置:

phpsoap数组,php数组函数

本文目录一览:

php soap扩展做webservice的时候 如何传入数组或者对象参数?

SOAP可以传递数组和对象,比较复杂不便详述。你可以在网上查阅SOAP的规范。SOAP的对象需要定义在wsdl里。这就要求java调用方也定义这些对象。

使用SOAP要注意一个问题:SOAP没有统一的标准,不同语言对SOAP的实现有微小差别,有可能导致不兼容。

编写SOAP的wsdl是件麻烦而且痛苦的事。你可以试试使用第三方库。Yii框架就提供一个强大的SOAP解决方案。你可以通过注释和类,自动生成wsdl。个人不推荐在PHP中使用SOAP,因为PHP不像其他语言类似JAVA、.NET,提供强大的SOAP支持。

你可以考虑轻量级API,也可以考虑XML-RPC。并不比SOAP差,而且很灵活。

望采纳,谢谢!

php数组问题

数据库里输出了n条数据,把n条数据和起来,用逗号分隔

这个问题可以用expolde函数解决

怎样才能让$temp输出 1,2,3,4,5.....这样的格式?

如果$temp数组里没有1,2,3,……的数值,可以用傻办法:

for($i=1;$i=count($temp);$i++){

$temp[$i]['sn']=$i;

}

php 中 webservice 是如何使用的 调用别人的接口 参数是如何传递的

php调用web service还是非常简单的。下面用一个例子说明:

web service服务是查询QQ用户是否在线

使用php5开发客户端:

?php

try {

//$client = new SoapClient("HelloService.wsdl",array('encoding'='UTF-8'));

$client = new SoapClient("webservices/qqOnlineWebService.asmx?wsdl");

var_dump($client-__getFunctions());

print("");

var_dump($client-__getTypes());

print("");

class qqCheckOnline{

var $qqCode = "10000";

};

$arrPara = array(new qqCheckOnline);

$arrResult = $client-__Call("qqCheckOnline",$arrPara);//$client-qqCheckOnline($arrPara);

echo $arrResult-qqCheckOnlineResult . "";

} catch (SOAPFault $e) {

print $e;

}

?

代码确实很简单吧,创建SoapClient对象时,可以使用保存在本地WSDL文件,也可以使用远程的地址,后面的array数组里可以带上很多的参数,具体参数可以查php的SoapClient帮助,这里带的是字符集编码,如果调用方法的参数里有中文,一定要指定字符集编码,否则会出错。

用web service前可以先调用SoapClient的__geunctions()和__getTypes()方法看一下你要调用的

web service暴露的方法,参数和数据类型,需要注意的是传入的参数名一定要和soapclient里面定义的一致,否则参数是传不过去的。

需要使用SoapClient的__soapCall()或__call()方法,具体使用方法可以查php的帮助文档。如果参数要求是一个结构体,请用类代替,如上面的代码。

另外发现个问题,如果web service方法返回的是xml格式的字符串,php接收到以后会自己把数据内容解析出来,而不是xml字符串.

php怎样接收整个json数组

PHP接收JSON格式的数据

在API服务中,目前流行采用json形式来交互。

给前端调用的接口输出Json数据,这个比较简单,只需要组织好数据,用json_encode($array) 转化一下,前端就得到json格式的数据。

接收前端提交的json数据稍微复杂一点,原因是:PHP默认识别的数据类型是application/x-标准的数据类型。因此,对型如text/xml 或者 soap 或者 application/octet-stream 和application/json格式之类的内容无法解析,如果用$_POST数组来接收就会失败!

此时可以使用$GLOBALS['HTTP_RAW_POST_DATA'] 或 file_get_contents('php://input') 来获取提交的数据

查看手册,可以发现$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST的区别:

$_POST:通过 HTTP POST 方法传递的变量组成的数组,是自动全局变量。

$GLOBALS['HTTP_RAW_POST_DATA'] :总是产生 $HTTP_RAW_POST_DATA 变量包含有原始的 POST 数据。此变量仅在碰到未识别 MIME 类型的数据时产生。$HTTP_RAW_POST_DATA 对于 enctype="multipart/form-data" 表单数据不可用。也就是说基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一样的。但是如果post过来的数据不是PHP能够识别的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']来接收,比如 text/xml 或者 soap 等等。

补充说明:PHP默认识别的数据类型是application/x-标准的数据类型。