xml格式返回的是数据一般是这样的,但也有不同:
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:国际域名空间、网络空间、营销软件、网站建设、崇川网站维护、网站推广。
?xml version="1.0" encoding="gbk"? root head actdate20170805/actdate trdate20170805/trdate trtime142410/trtime trseq20170807001/trseq succflag1/succflag retcode0000/retcode retmsg鎴愬姛/retmsg /head body rowcount0/rowcount /body /root
一般xml直接用php的:simplexml_load_string();解析成数组,但我解析的时候提示:有无法解析的数据编码。
也就是数据乱码的那部分,解决乱码我用了header的声明,但不管用,最后用了:
iconv('utf-8','gbk',$a);
问题解决,先转码,后解析
最后json转换就行了。
var_dump — 打印变量的相关信息
此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
例如:
?php
$a = array(1, 2, array("a", "b", "c"));
var_dump($a);
?
输出:
array(3) {
[0]= int(1)
[1]= int(2)
[2]= array(3) {
[0]= string(1) "a"
[1]= string(1) "b"
[2]= string(1) "c"
}
}
中文乱码只要前端后端统一编码模式就好,先编码成utf-8,然后转json,传给前端的js, js接受后用JSON.parse(data)把json字符串转成json对象,然后直接获取里面的内容以utf-8格式解码就能得到数据了
用json_encode()函数对数组进行JSON编码。
有时候收不到可能是因为你返回的json格式被破坏了,最大的可能是BOM导致的,不要使用系统自带的记事本编辑utf8格式的php。
还有就是在json_encode()前面和后面不能有别的输出。
最好使用exit(json_encode($array))来输出。
这个简单 通过判断循环列的基偶就能达到你的要求了
$array = array(
'0' = array('name' = '名字1', 'age' = '年龄1', 'sex' = '性别1'),
'1' = array('name' = '名字2', 'age' = '年龄2', 'sex' = '性别2'),
'2' = array('name' = '名字3', 'age' = '年龄3', 'sex' = '性别3'),
'3' = array('name' = '名字4', 'age' = '年龄4', 'sex' = '性别4'),
'4' = array('name' = '名字5', 'age' = '年龄4', 'sex' = '性别4')
);
for ($i = 0; $i count($array); $i++) {
if ($i % 2 == 0) {
echo $array[$i]['name'] . ' ';
} else {
echo $array[$i]['name'] . 'br/';
}
}
正常来说,循环赋值是没问题的,你需要看下,你的sql在数据库中能查出几条结果,
最好数组还是这样定义$arr
=
array();而不是$arr[]
=
array();
简单的测试你数据是否只有一条的方法是在while里边打印个东西
echo
$sql;//打印下你的sql语句,用phpmyadmin执行下看结果
$cnt=1;
while($row
=
$db
-
fetchassoc($result))
{
$cnt++;
echo
$cnt;
}