js访问php使用 webservice
程序员文章站
2022-03-09 21:10:09
...
客户端:js客户端
PHP端:
nusoap client
soap_defencoding = 'UTF-8'; $client->decode_utf8 = false; $client->xml_encoding = 'UTF-8'; //得到客户端的数据,将数据传递到service,在service中再去调用第三方文件 查询、操作业务逻辑并等待结果 // 参数转为数组形式传递 $paras = array ('username' =>$_GET['uname'],'calltype'=>$_GET['call_type']); $result = $client->call ( 'getResponse', $paras ); //去 // 检查错误,获取返回值 if (! $err = $client->getError()) { //如果没有错误 if($_GET['call_type'] == 'xml'){ header('content-type: text/xml'); echo $result; }elseif($_GET['call_type'] == 'json'){ echo " 返回结果: ", $result; } } else { echo " 调用出错: ", $err; } nusoap serviersoap_defencoding = 'UTF-8'; $server->decode_utf8 = false; $server->xml_encoding = 'UTF-8'; $server->configureWSDL ('test'); // 打开 wsdl 支持 /* 注册需要被客户端访问的程序 类型对应值: bool->"xsd:boolean" string->"xsd:string" int->"xsd:int" float->"xsd:float" */ $server->register ( 'getResponse', // 注册需要访问的方法名 array ("username" => "xsd:string" ), // 参数,默认为 "xsd:string" array ("return" => "xsd:string" ) ); // 返回值,默认为 "xsd:string" //isset 检测变量是否设置 $HTTP_RAW_POST_DATA = isset ( $HTTP_RAW_POST_DATA ) ? $HTTP_RAW_POST_DATA : ''; //service 处理客户端输入的数据 $server->service ( $HTTP_RAW_POST_DATA ); function getResponse($username,$calltype){ //查询数据 //得到查询结果 $array=array( 'status'=>1, 'info'=>array( 'tel'=>'1234567890', 'sex'=>'1', 'addres'=>'xxxxxxxxxxxxxxxxx' ) ); if($calltype == 'json'){ //将数据json 化 return json_encode($array); }elseif($calltype == 'xml'){ return arr2xml($array); } } /** * @param $arr * @param null $node * @return mixed * 数组转xml */ function arr2xml($arr,$node=null) { if($node === null) { $simxml = new simpleXMLElement(''); } else { $simxml = $node; } // simpleXMLElement对象如何增加子节点? foreach($arr as $k=>$v) { if(is_array($v)) { //$simxml->addChild($k); arr2xml($v,$simxml->addChild($k)); } else if(is_numeric($k)) { //标签不能以数字开头,和变量类似 $simxml->addChild('item' . $k,$v); } else { $simxml->addChild($k,$v); } } return $simxml->saveXML(); } 以上就介绍了js访问php使用 webservice,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。