header("Content-Type: text/html;charset=utf-8");
$data=$redis->hGetAll("$label"); //从redis读数据;$data包括两个元素:name为GB2312汉字,k1为二进制数据
//解压二进制数据
$doc= (string)$data['k1'];
$format = 'itime/flast/fop/fhi‘;
$arr0 = unpack($format,$doc);//合并解压后数据$arr0与$l两个数组
$l["label"]=$label;$l["name"]=iconv('GB2312','UTF-8//IGNORE',(string)$data['name']);//转换GB2312汉字为UTF-8
$arr=array_merge($l,$arr0);//追加至$res数据,返回数据
array_push($res['data'],$arr);
echo json_encode($res);
循环执行上述代码时总不能输出正确数据。单独输出解压后的二进制数据没问题,单独转换GB2312汉字为UTF-8输出也没问题。但两者放一起,要么输出name为null、要么数据变乱,同时语句顺序对结果也有影响。
请高手指点。
$data=$redis->hGetAll("$label"); //从redis读数据;$data包括两个元素:name为GB2312汉字,k1为二进制数据
//解压二进制数据
$doc= (string)$data['k1'];
$format = 'itime/flast/fop/fhi‘;
$arr0 = unpack($format,$doc);//合并解压后数据$arr0与$l两个数组
$l["label"]=$label;$l["name"]=iconv('GB2312','UTF-8//IGNORE',(string)$data['name']);//转换GB2312汉字为UTF-8
$arr=array_merge($l,$arr0);//追加至$res数据,返回数据
array_push($res['data'],$arr);
echo json_encode($res);
循环执行上述代码时总不能输出正确数据。单独输出解压后的二进制数据没问题,单独转换GB2312汉字为UTF-8输出也没问题。但两者放一起,要么输出name为null、要么数据变乱,同时语句顺序对结果也有影响。
请高手指点。
解决方案 »
- 求正则表达式
- 下拉菜单,不是导航那种
- 如何判断是否是蜘蛛?
- sytax error!!
- 访问MySQL缓慢问题,在线等,高分
- 图片上传的功能,怎样把值(图片名)传到表单的隐藏域,再提交?
- 调用sina提供的webservice发短信总是不成.手机也注册了啊.就是发不出去...有做过soap的进来指点一下...
- 怎么能做到 一个未登录的用户,一天只能查看一天信息记录?
- 调查。。。回复有分
- 怎样让下拉菜单(设为MULTIPLE)中多个选项同时选中显示出来。
- 怎么用php操作apache 实现批量搭建网站 自动导入数据库已完成,对文件的读写也学到了,就是对apache的操作没有思路。像人家宝塔那种后台是怎么做到的
- 关于PHP输出SQLSERVER的所谓DATETIME格式数据的问题!
echo base64_code(serialize($daya));
贴出结果
array(2) { ["k1"]=> string(48) "d>�Y�eA��dA��dA)\cA�cA A���K�B�C��F" ["name"]=> string(8) "�㶫����" }
这是var_dump($data);的数据。
echo base64_code(serialize($data['k1']));无显示数据。
print_r($l);
echo $l["name"];
这几句话,结果name为空。
//print_r($l);echo $l["name"];
$format = 'it/fl/fo/fh/flo/fcl/fv/fam/fop/fb/fs/ftotlVo';
$arr0 = unpack($format,$data['k1']);//不能执行
YToyOntzOjI6ImsxIjtzOjQ4OiKYBKBZAKwsRoUMLUZ70DBGe9csRnFhMEYAADBBAAAAAAAAAAAAAAAAAAAAAAAYDEYiO3M6NDoibmFtZSI7czoxMjoiuuPJ+rn6xvPWuMr9Ijt9
YToyOntzOjI6ImsxIjtzOjQ4OiK4859ZuP7ERHENxUSFM8VEKWTERDP7xEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxMToizKm5+lNFVNa4yv0iO30=
YToyOntzOjI6ImsxIjtzOjQ4OiJcBKBZH9j2RuFy90ZhfPdGGnT2Rh/Y9kYAAAAAAAAAAAAAAAAAAAAAAAAAAAAcEEYiO3M6NDoibmFtZSI7czoxNjoi06G2yMPPwvJTRU5TRVgzMCI7fQ==
YToyOntzOjI6ImsxIjtzOjQ4OiK4xaBZuD6DRJpZg0TXo4RESFmDRK6PhEQAAAAAAAAAAAAAAAAAAAAAAAAAAADI6kYiO3M6NDoibmFtZSI7czoxMzoitu3C3su5UlRT1rjK/SI7fQ==
YToyOntzOjI6ImsxIjtzOjQ4OiLARaBZ1wu4RFIQuETs4bhEj8q3RMP1t0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxNToiuLvKscW31t7PyMf9MzAwIjt9
YToyOntzOjI6ImsxIjtzOjQ4OiLARaBZrlGVRa5RlUX2EJZFhdOURYU1lUUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxNToiuLvKscW31t7PyMf9ODDWIjt9
YToyOntzOjI6ImsxIjtzOjQ4OiLARaBZj0SBRRRMgUUU8IFFuBSBRQBAgUUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxNjoiuLvKscW31t7PyMf9MTAw1iI7fQ==
YToyOntzOjI6ImsxIjtzOjQ4OiIoR6BZe3jnRXt450U9fOhFrkvnRa5L50UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxNToi06K5+ri7yrExMDDWuMr9Ijt9
YToyOntzOjI6ImsxIjtzOjQ4OiL0PqBZUuh8RFLofETD9X1Erod8RK6HfEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxNjoitaTC87jnsb65/rj5MjDWuCI7fQ==
YToyOntzOjI6ImsxIjtzOjQ4OiL8RaBZ9sxyRfbMckVmbnRFCodyRcM1c0UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxNjoit9LAvLrVtvvQwbv5MjXWuCI7fQ==
YToyOntzOjI6ImsxIjtzOjQ4OiLARaBZrj/ARK4/wETX88FECj/ARD2awEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxNToiyPC15Mu5tcK457b7xKYzIjt9
YToyOntzOjI6ImsxIjtzOjQ4OiIoR6BZZsYBRBSuAURIAQJErlcBROFaAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxNjoiusnAvLCixLfLuczYtaTWuCI7fQ==
YToyOntzOjI6ImsxIjtzOjQ4OiL8RaBZrktXRVJ4V0XsWVhFUoxWRSkYV0UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxNToixbfW3su5zdC/yzUw1rjKIjt9
YToyOntzOjI6ImsxIjtzOjQ4OiL8RaBZSEG7Qwp3u0NSGLxDzQy7Q+wxu0MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxNjoixbfW3su5zdC/yzYwMNa4yiI7fQ==
YToyOntzOjI6ImsxIjtzOjQ4OiIoR6BZ1990RRQWdUVIfXVFXBt0RVwbdEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxMjoiscjA+8qxMjDWuMr9Ijt9
YToyOntzOjI6ImsxIjtzOjQ4OiIoR6BZCsmfRdcLoEVmqKBFFFSfRaSCn0UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxMzoit6i5+kNBQzQw1rjK/SI7fQ==
YToyOntzOjI6ImsxIjtzOjQ4OiIoR6BZUlM+RuyKPkbDZT9GAJI9RsMfPkYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxMzoitcK5+kRBWDMw1rjK/SI7fQ==
YToyOntzOjI6ImsxIjtzOjQ4OiJkR6BZvcOpRrjfqUaPuKpG0napRgDlqUYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxNToi0uK088D7uLvKsU1JQta4Ijt9
YToyOntzOjI6ImsxIjtzOjQ4OiJ0RqBZKbwLRuGcC0bsBwxGhSMLRrgoC0YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxMToiyPDKv1NNSda4yv0iO30=
YToyOntzOjI6ImsxIjtzOjQ4OiIoR6BZPWKiRRRgokXNmqJFXG+hRVxvoUUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxNToixs/M0dHAUFNJMjDWuMr9Ijt9
YToyOntzOjI6ImsxIjtzOjQ4OiKYBKBZAKwsRoUMLUZ70DBGe9csRnFhMEYAADBBAAAAAAAAAAAAAAAAAAAAAAAYDEYiO3M6NDoibmFtZSI7czoxMjoiuuPJ+rn6xvPWuMr9Ijt9
TXT;
$s = base64_decode($s);
//echo $s;
$d = unserialize($s);
print_r($d);
$d['k1'] = unpack('it/fl/fo/fh/flo/fcl/fv/fam/fop/fb/fs/ftotlVo', $d['k1']);
//$d['name'] = iconv('gb2312', 'utf-8', $d['name']);
print_r($d);Array
(
[k1] => �燳�,F�-F{�0F{�,Fqa0F0AF
[name] => 恒生国企指数
)
Array
(
[k1] => Array
(
[t] => 1503659160
[l] => 11051
[o] => 11075.129882812
[h] => 11316.120117188
[lo] => 11061.870117188
[cl] => 11288.360351562
[v] => 11
[am] => 0
[op] => 0
[b] => 0
[s] => 0
[totlVo] => 8966
) [name] => 恒生国企指数
)
改成这样就可以了$data = array('YToyOntzOjI6ImsxIjtzOjQ4OiKYBKBZAKwsRoUMLUZ70DBGe9csRnFhMEYAADBBAAAAAAAAAAAAAAAAAAAAAAAYDEYiO3M6NDoibmFtZSI7czoxMjoiuuPJ+rn6xvPWuMr9Ijt9',
'YToyOntzOjI6ImsxIjtzOjQ4OiK4859ZuP7ERHENxUSFM8VEKWTERDP7xEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxMToizKm5+lNFVNa4yv0iO30=',
'YToyOntzOjI6ImsxIjtzOjQ4OiJcBKBZH9j2RuFy90ZhfPdGGnT2Rh/Y9kYAAAAAAAAAAAAAAAAAAAAAAAAAAAAcEEYiO3M6NDoibmFtZSI7czoxNjoi06G2yMPPwvJTRU5TRVgzMCI7fQ==',
'YToyOntzOjI6ImsxIjtzOjQ4OiK4xaBZuD6DRJpZg0TXo4RESFmDRK6PhEQAAAAAAAAAAAAAAAAAAAAAAAAAAADI6kYiO3M6NDoibmFtZSI7czoxMzoitu3C3su5UlRT1rjK/SI7fQ==',
'YToyOntzOjI6ImsxIjtzOjQ4OiLARaBZ1wu4RFIQuETs4bhEj8q3RMP1t0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxNToiuLvKscW31t7PyMf9MzAwIjt9',
'YToyOntzOjI6ImsxIjtzOjQ4OiLARaBZrlGVRa5RlUX2EJZFhdOURYU1lUUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxNToiuLvKscW31t7PyMf9ODDWIjt9',
'YToyOntzOjI6ImsxIjtzOjQ4OiLARaBZj0SBRRRMgUUU8IFFuBSBRQBAgUUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxNjoiuLvKscW31t7PyMf9MTAw1iI7fQ==',
'YToyOntzOjI6ImsxIjtzOjQ4OiIoR6BZe3jnRXt450U9fOhFrkvnRa5L50UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxNToi06K5+ri7yrExMDDWuMr9Ijt9',
'YToyOntzOjI6ImsxIjtzOjQ4OiL0PqBZUuh8RFLofETD9X1Erod8RK6HfEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxNjoitaTC87jnsb65/rj5MjDWuCI7fQ==',
'YToyOntzOjI6ImsxIjtzOjQ4OiL8RaBZ9sxyRfbMckVmbnRFCodyRcM1c0UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxNjoit9LAvLrVtvvQwbv5MjXWuCI7fQ==',
'YToyOntzOjI6ImsxIjtzOjQ4OiLARaBZrj/ARK4/wETX88FECj/ARD2awEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxNToiyPC15Mu5tcK457b7xKYzIjt9',
'YToyOntzOjI6ImsxIjtzOjQ4OiIoR6BZZsYBRBSuAURIAQJErlcBROFaAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxNjoiusnAvLCixLfLuczYtaTWuCI7fQ==',
'YToyOntzOjI6ImsxIjtzOjQ4OiL8RaBZrktXRVJ4V0XsWVhFUoxWRSkYV0UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxNToixbfW3su5zdC/yzUw1rjKIjt9',
'YToyOntzOjI6ImsxIjtzOjQ4OiL8RaBZSEG7Qwp3u0NSGLxDzQy7Q+wxu0MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxNjoixbfW3su5zdC/yzYwMNa4yiI7fQ==',
'YToyOntzOjI6ImsxIjtzOjQ4OiIoR6BZ1990RRQWdUVIfXVFXBt0RVwbdEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxMjoiscjA+8qxMjDWuMr9Ijt9',
'YToyOntzOjI6ImsxIjtzOjQ4OiIoR6BZCsmfRdcLoEVmqKBFFFSfRaSCn0UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxMzoit6i5+kNBQzQw1rjK/SI7fQ==',
'YToyOntzOjI6ImsxIjtzOjQ4OiIoR6BZUlM+RuyKPkbDZT9GAJI9RsMfPkYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxMzoitcK5+kRBWDMw1rjK/SI7fQ==',
'YToyOntzOjI6ImsxIjtzOjQ4OiJkR6BZvcOpRrjfqUaPuKpG0napRgDlqUYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxNToi0uK088D7uLvKsU1JQta4Ijt9',
'YToyOntzOjI6ImsxIjtzOjQ4OiJ0RqBZKbwLRuGcC0bsBwxGhSMLRrgoC0YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxMToiyPDKv1NNSda4yv0iO30=',
'YToyOntzOjI6ImsxIjtzOjQ4OiIoR6BZPWKiRRRgokXNmqJFXG+hRVxvoUUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiO3M6NDoibmFtZSI7czoxNToixs/M0dHAUFNJMjDWuMr9Ijt9');$result = array();foreach($data as $k=>$v){
$result[] = handle($v);
}print_r($result);function handle($s){
$data = unserialize(base64_decode($s));
$format = 'itime/flast/fop/fhi';
$format = 'it/fl/fo/fh/flo/fcl/fv/fam/fop/fb/fs/ftotlVo';
$data['k1'] = unpack($format, $data['k1']);
$data['name'] = mb_convert_encoding($data['name'], 'UTF8', 'GBK');
return $data;
}输出:
Array
(
[0] => Array
(
[k1] => Array
(
[t] => 1503659160
[l] => 11051
[o] => 11075.129882812
[h] => 11316.120117188
[lo] => 11061.870117188
[cl] => 11288.360351562
[v] => 11
[am] => 0
[op] => 0
[b] => 0
[s] => 0
[totlVo] => 8966
) [name] => 恒生国企指数
) [1] => Array
(
[k1] => Array
(
[t] => 1503654840
[l] => 1575.9599609375
[o] => 1576.4200439453
[h] => 1577.6099853516
[lo] => 1571.1300048828
[cl] => 1575.8499755859
[v] => 0
[am] => 0
[op] => 0
[b] => 0
[s] => 0
[totlVo] => 0
) [name] => 泰国SET指数
) [2] => Array
(
[k1] => Array
(
[t] => 1503659100
[l] => 31596.060546875
[o] => 31673.439453125
[h] => 31678.189453125
[lo] => 31546.05078125
[cl] => 31596.060546875
[v] => 0
[am] => 0
[op] => 0
[b] => 0
[s] => 0
[totlVo] => 9223
) [name] => 印度孟买SENSEX30
) [3] => Array
(
[k1] => Array
(
[t] => 1503708600
[l] => 1049.9599609375
[o] => 1050.8000488281
[h] => 1061.1199951172
[lo] => 1050.7900390625
[cl] => 1060.4899902344
[v] => 0
[am] => 0
[op] => 0
[b] => 0
[s] => 0
[totlVo] => 30052
) [name] => 俄罗斯RTS指数
) [4] => Array
(
[k1] => Array
(
[t] => 1503675840
[l] => 1472.3699951172
[o] => 1472.5100097656
[h] => 1479.0600585938
[lo] => 1470.3299560547
[cl] => 1471.6800537109
[v] => 0
[am] => 0
[op] => 0
[b] => 0
[s] => 0
[totlVo] => 0
) [name] => 富时欧洲先驱300
) [5] => Array
(
[k1] => Array
(
[t] => 1503675840
[l] => 4778.2099609375
[o] => 4778.2099609375
[h] => 4802.1201171875
[lo] => 4762.4399414062
[cl] => 4774.6899414062
[v] => 0
[am] => 0
[op] => 0
[b] => 0
[s] => 0
[totlVo] => 0
) [name] => 富时欧洲先驱80
) [6] => Array
(
[k1] => Array
(
[t] => 1503675840
[l] => 4136.5698242188
[o] => 4137.509765625
[h] => 4158.009765625
[lo] => 4130.58984375
[cl] => 4136
[v] => 0
[am] => 0
[op] => 0
[b] => 0
[s] => 0
[totlVo] => 0
) [name] => 富时欧洲先驱100
) [7] => Array
(
[k1] => Array
(
[t] => 1503676200
[l] => 7407.0600585938
[o] => 7407.0600585938
[h] => 7439.5297851562
[lo] => 7401.4599609375
[cl] => 7401.4599609375
[v] => 0
[am] => 0
[op] => 0
[b] => 0
[s] => 0
[totlVo] => 0
) [name] => 英国富时100指数
) [8] => Array
(
[k1] => Array
(
[t] => 1503674100
[l] => 1011.6300048828
[o] => 1011.6300048828
[h] => 1015.8400268555
[lo] => 1010.1199951172
[cl] => 1010.1199951172
[v] => 0
[am] => 0
[op] => 0
[b] => 0
[s] => 0
[totlVo] => 0
) [name] => 丹麦哥本哈根20指
) [9] => Array
(
[k1] => Array
(
[t] => 1503675900
[l] => 3884.8100585938
[o] => 3884.8100585938
[h] => 3910.8999023438
[lo] => 3880.4399414062
[cl] => 3891.3601074219
[v] => 0
[am] => 0
[op] => 0
[b] => 0
[s] => 0
[totlVo] => 0
) [name] => 芬兰赫尔辛基25指
) [10] => Array
(
[k1] => Array
(
[t] => 1503675840
[l] => 1537.9899902344
[o] => 1537.9899902344
[h] => 1551.6199951172
[lo] => 1537.9699707031
[cl] => 1540.8199462891
[v] => 0
[am] => 0
[op] => 0
[b] => 0
[s] => 0
[totlVo] => 0
) [name] => 瑞典斯德哥尔摩3
))
iconv('GB2312','UTF-8//IGNORE',$data['name']); 这句改变了$data的值
源代码:
var_dump($data);
echo iconv('GB2312','UTF-8//IGNORE',$data['name']).'<br />';
var_dump($data);结果:
array(2) { ["k1"]=> string(48) "��Y{��B=��BH�B B= �B" ["name"]=> string(8) "��Ԫָ��" }
美元指数
array(2) { ["k1"]=> string(12) "美元指数" ["name"]=> string(8) "��Ԫָ��" }
$doc=array();
$data=$redis->hGetAll("$label");
$doc=(array)$data;
$format = 'itime/flastClose/fopen/fhigh/flow/fclose/fvol/famount/fopid/fbv/fsv/ftotalVol';
$doc['label']=$label;
$doc['name'] = mb_convert_encoding($doc['name'], 'UTF8', 'GBK');
$doc['k1'] = unpack($format, $doc['k1']);
print_r ($doc);结果:
Array ( [open] => 只有这个,这是哪方面的问题?
foreach ($listData as $label)
{
$doc=array();
$data=$redis->hGetAll("$label");
$doc=(array)$data;
$format = 'itime/flastClose/fopen/fhigh/flow/fclose/fvol/famount/fopid/fbv/fsv/ftotalVol';
$doc['label']=$label;
$doc['name'] = mb_convert_encoding($doc['name'], 'UTF8', 'GBK');
$doc['k1'] = unpack($format, $doc['k1']);
print_r ($doc);
}