方法1、最常见的方法是:$_POST['fieldname'];
濮阳县ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
说明:只能接收Content-Type:
application/x-www-form-urlencoded提交的数据
解释:也就是表单POST过来的数据
方法2、file_get_contents("php://input");
说明:
允许读取
POST
的
原始数据
。
和
$HTTP_RAW_POST_DATA
比起来,它给内存带来的压力较小,并且不需要任何特殊的
php.ini
设置。
php://input
不能用于
enctype="multipart/form-data"。
解释:
对于未指定
Content-Type
的POST数据,则可以使用file_get_contents(“php://input”);来获取原始数据。
事实上,用PHP接收POST的任何数据都可以使用本方法。而不用考虑Content-Type,包括
二进制文件
流也可以。
所以用方法二是最保险的方法
方法3、$GLOBALS['HTTP_RAW_POST_DATA'];
说明:
总是产生
$HTTP_RAW_POST_DATA
变量包含有原始的
POST
数据。
此变量仅在碰到未识别
MIME
类型的数据时产生。
$HTTP_RAW_POST_DATA
对于
enctype="multipart/form-data"
表单数据不可用
如果post过来的数据不是PHP能够识别的,可以用
$GLOBALS['HTTP_RAW_POST_DATA']来接收,
比如
text/xml
或者
soap
等等
解释:
$GLOBALS['HTTP_RAW_POST_DATA']存放的是POST过来的原始数据。
$_POST或
$_REQUEST
存放的是
PHP以key=value的形式格式化以后的数据。
但$GLOBALS['HTTP_RAW_POST_DATA']中是否保存POST过来的数据取决于centent-Type的设置,即POST数据时
必须显式示指明Content-Type:
application/x-www-form-urlencoded,POST的数据才会存放到
$GLOBALS['HTTP_RAW_POST_DATA']中
header('Content-Type: text/html; charset=UTF-8');
//链接
$http='';
//参数,很重要,之前搞的时候一直传不了参数过去,原来是这样的,搞死我了
$params=array('string'='xxx','string1'='xxxx');
$client = new SoapClient($http,array('encoding'='utf-8','cache_wsdl' = 0,'compression'=true));
$client-soap_defencoding = 'utf-8';
$client-xml_encoding = 'utf-8';
//请求返回的数据
$return = $client-$fun($params);//parameters
把它当xml 用simplexml解析
?php
$soap=SOAP
?xml version="1.0" encoding="utf-8"?
soap:Envelope xmlns:soap="" xmlns:xsi="" xmlns:xsd=""
soap:Body
QueryResponse xmlns=""
QueryResult
Order_flag=0Name_num=2077StartCity=SZXEndCity=PEKDates=2012-5-31.......后面还有好多这样的数据。
/QueryResult
/QueryResponse
/soap:Body
/soap:Envelope
SOAP;
$xml=simplexml_load_string($soap);
$result = $xml-children('')
-children('')
-QueryResponse
-QueryResult;
echo $result;
你好,有一个较简单的方法可以检查下service端是否存在该方法, 或者说你所用的方法名称是否正确, 方法如下:
$functions = $client-__getFunctions ();
var_dump ($functions);
希望对你有所帮助!