客户端: <meta charset="UTF-8">js客户端 <style type="text/css"> *{ margin: 0; padding: 0; font-family: "宋体";} .box{ width: 500px; height: 200px; border: 1px solid blue; margin: 0 auto; } .msg{ width: 100%; height: 40px; line-height: 40px; background-color: #000033; color: #fff2de; display: inline-block;} input{ width: 300px; height: 30px; line-height: 30px; border: 1px solid green; margin-top: 10px; margin-bottom: 10px;} button{ width:300px; height: 35px;line-height: 35px; border: 1px solid red; margin-left:60px; } button:hover{ cursor: pointer;} </style><body><script type="text/javascript" src="jquery1.11.3.js"></script><script type="text/javascript" src="layer/layer.js"></script><script type="text/javascript"> //得到当前的域名 var _host=window.location.host; var _usernameVal; //用户名输入框的值 //实现点击事件 function getWebserviceData(){ var _uname=$('.uname').val(); if(_uname == '' || _uname == null){ layer.alert('很抱歉!没有数据', {icon:5}); return false; }else{ var _url="http://127.0.0.1/php_app/nusoapClient.php";//api接口地址 $.get(_url,{"uname":_uname,"call_type":'json'},function(data){ layer.msg(data); }); } }</script>
PHP端:
nusoap client
<?php/** * Created by JetBrains PhpStorm. * User: zhanghua * Date: 16-3-11 * Time: 下午3:53 * To change this template use File | Settings | File Templates. */require_once ("nusoap/nusoap.php");$url='http://127.0.0.1/php_app/nusoapService.php';$client = new soapclient ($url);$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 servier<?php/** * Created by JetBrains7 PhpStorm. * User: Administrator * Date: 16-3-11 * Time: 下午3:52 * To change this template use File | Settings | File Templates. */require_once ("nusoap/nusoap.php");$server=new soap_server();// 避免乱码$server->soap_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" ), //@本文来*源gaodai#ma#com搞*!代#%^码$网* 参数,默认为 "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('<?xml version="1.0" encoding="utf-8"?>'); } 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教程有兴趣的朋友有所帮助。