js访问php使用 webservice

原创
2016-07-29 08:59:10 976浏览
客户端:



    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 servier
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" ), // 参数,默认为 "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


以上就介绍了js访问php使用 webservice,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。