使用json传输数组实例
来源:互联网 发布:mac最贵的软件 编辑:程序博客网 时间:2024/05/16 08:06
client.php
<?php//遍历数组元素,并将元素转码function array_iconv($data, $in_charset='GBK', $out_charset='UTF-8'){ if (!is_array($data)){ $output = iconv($in_charset, $out_charset, $data); }elseif(count($data) === count($data, 1)){//判断是否是二维数组 foreach($data as $key => $value){ $output[$key] = iconv($in_charset, $out_charset, $value); } }else{ eval_r('$output = '.iconv($in_charset, $out_charset, var_export($data, TRUE)).';'); } return $output;}$arr = array("username"=>'aaa',"pwd"=>'47bce5c74f589f4867dbd57e9ca9f808','sex'=>'男'); $arr['_e_'] = 'pwd,sex,username'; //这个参数中存的是randkey里面数组value值的排序//获得按'_e_'排序的临时数组,这是为了得到randkey$keys = explode(",",$arr['_e_']);$tempArr = array();for($i=0;$i<count($arr)-1;$i++){ $tempArr["$keys[$i]"] = $arr["$keys[$i]"];}$str='';foreach ($tempArr as $key=>$value){$str .= $value;}$randkey = md5($str.'123abc');$arr['randkey'] = $randkey;$arr = array_iconv($arr);$arr = array_map('urlencode',$arr); //可使用http_build_query()函数替代$data = json_encode($arr);$url = "http://localhost/zchnqi/member/receive.php?json=$data";/****get方式传递数据******//初始化$ch = curl_init();//设置选项,包括URLcurl_setopt($ch, CURLOPT_URL, "$url");curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_HEADER, 0);//执行并获取HTML文档内容$output = curl_exec($ch);//释放curl句柄curl_close($ch);//打印获得的数据print_r($output);*///***post方式传输数据******$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);// post数据curl_setopt($ch, CURLOPT_POST, 1);// post的变量curl_setopt($ch, CURLOPT_POSTFIELDS, $data); $output = curl_exec($ch);curl_close($ch); //打印获得的数据print_r($output);$res=unserialize($output);var_dump($res);if ($res['stat']=='1') { echo 'right';}else{ echo 'error';}?>
server.php
<?phprequire_once(dirname(__FILE__)."/config.php");//遍历数组元素,并将元素转码function array_iconv($data, $in_charset='GBK', $out_charset='UTF-8'){ if (!is_array($data)){ $output = iconv($in_charset, $out_charset, $data); }elseif(count($data) === count($data, 1)){//判断是否是二维数组 foreach($data as $key => $value){ $output[$key] = iconv($in_charset, $out_charset, $value); } }else{ eval_r('$output = '.iconv($in_charset, $out_charset, var_export($data, TRUE)).';'); } return $output;}if($_GET["json"]){ //数据传递为get方式 $arr = json_decode($_GET["json"],true);}else{ //数据传递为post方式 或者使用$_SERVER['REQUEST_METHOD'] == 'POST',判断提交的数据是否是POST方式传来的 $arr = file_get_contents("php://input"); //若$arr=$_POST;返回null $arr = json_decode($arr,true); //var_dump($arr);}$arr = array_map('urldecode',$arr); $arr = array_iconv($arr,'utf-8','gbk');$str = $arr['_e_'];//获得按'_e_'排序的临时数组,这是为了得到randkey$keys = explode(",",$str);$tempArr = array();for($i=0;$i<count($arr)-2;$i++){ $tempArr["$keys[$i]"] = $arr["$keys[$i]"];}$str='';foreach ($tempArr as $key=>$value){$str .= $value;}$randkey = md5($str.'123abc');if($randkey == $arr['randkey']){ $son = $dsql->GetOne("SELECT * FROM #@__member WHERE user='$arr[username]' "); if($son[pwd] == $arr[pwd]){ //将数组序列化后输出,客户端反序列化后还原为数组;也可以使用json_encode()输出,客户端使用josn_decode()获得数组 echo serialize($son); }else{ echo serialize('password error'); //这边序列化是为了防止客户端反序列化该字符串不标准而报错 }}else{ echo serialize('vertiy code error');}?>
0 0
- 使用json传输数组实例
- ajax实例--传输json数据
- Json解析数组实例
- 使用json协议传输二进制文件
- jquery异步传输json数据格式实例
- Servlet+spring+mybatis结合传输json数组
- javascript使用json(实例)
- json-lib使用实例
- Json使用实例
- Newtonsoft.Json 使用实例
- 使用 JSON 进行数据的异步传输
- 要使用json来传输数据
- AJAX - 使用JSON传输复杂数据
- 使用json往返传输数据 post方法
- 使用 JSON 进行数据的异步传输
- stuts2中使用json传输数据
- 使用HttpURLConnection和Servlet传输json
- Json格式前后端传输的ajax实例
- 整个电脑ctrl+z失效解决
- hibernate-------could not instantiate id generator
- 51单片机I2C程序
- statasbar颜色
- HBase导入大数据三大方式之(一)——hive类SQL语句方式
- 使用json传输数组实例
- Java System.exit(0)和System.exit(1)区别
- 手机数据丢失可以恢复吗
- MAC OS实用快捷键集锦
- 一步步学习微软InfoPath2010和SP2010--第十三章节--SharePoint视图和仪表板(1)--服务台请求
- UVA 10344 - 23 out of 5 全排列,3进制表示状态,回溯
- win server 2003+apache+php 开启openssl
- slab内存分配------内存池mempool
- iOS基础 -- UISegmentControl