xml格式返回的是數(shù)據(jù)一般是這樣的,但也有不同:
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國際域名空間、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、崇川網(wǎng)站維護(hù)、網(wǎng)站推廣。
?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();解析成數(shù)組,但我解析的時(shí)候提示:有無法解析的數(shù)據(jù)編碼。
也就是數(shù)據(jù)亂碼的那部分,解決亂碼我用了header的聲明,但不管用,最后用了:
iconv('utf-8','gbk',$a);
問題解決,先轉(zhuǎn)碼,后解析
最后json轉(zhuǎn)換就行了。
var_dump — 打印變量的相關(guān)信息
此函數(shù)顯示關(guān)于一個(gè)或多個(gè)表達(dá)式的結(jié)構(gòu)信息,包括表達(dá)式的類型與值。數(shù)組將遞歸展開值,通過縮進(jìn)顯示其結(jié)構(gòu)。
例如:
?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"
}
}
中文亂碼只要前端后端統(tǒng)一編碼模式就好,先編碼成utf-8,然后轉(zhuǎn)json,傳給前端的js, js接受后用JSON.parse(data)把json字符串轉(zhuǎn)成json對象,然后直接獲取里面的內(nèi)容以utf-8格式解碼就能得到數(shù)據(jù)了
用json_encode()函數(shù)對數(shù)組進(jìn)行JSON編碼。
有時(shí)候收不到可能是因?yàn)槟惴祷氐膉son格式被破壞了,最大的可能是BOM導(dǎo)致的,不要使用系統(tǒng)自帶的記事本編輯utf8格式的php。
還有就是在json_encode()前面和后面不能有別的輸出。
最好使用exit(json_encode($array))來輸出。
這個(gè)簡單 通過判斷循環(huán)列的基偶就能達(dá)到你的要求了
$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/';
}
}
正常來說,循環(huán)賦值是沒問題的,你需要看下,你的sql在數(shù)據(jù)庫中能查出幾條結(jié)果,
最好數(shù)組還是這樣定義$arr
=
array();而不是$arr[]
=
array();
簡單的測試你數(shù)據(jù)是否只有一條的方法是在while里邊打印個(gè)東西
echo
$sql;//打印下你的sql語句,用phpmyadmin執(zhí)行下看結(jié)果
$cnt=1;
while($row
=
$db
-
fetchassoc($result))
{
$cnt++;
echo
$cnt;
}