首頁 > 後端開發 > php教程 > php 生成json,输出了NULL,何解?

php 生成json,输出了NULL,何解?

WBOY
發布: 2016-06-23 13:13:48
原創
1209 人瀏覽過

$a=mysql_query("SELECT * FROM `qq` WHERE userid='$userid'");
$id= 1;
while($row=mysql_fetch_array($a)){
$name = file_get_contents("http://zx.52reso.com/pznc.php?id=2224503435");
$user =new User();
$user->id = $id++;
$user->qq = $row["qq"];
$user->txUrl ='http://q.qlogo.cn/headimg_dl?dst_uin='.$row["qq"].'&spec=100&img_type=jpg';
$user->qqName = $name;
$user->pczx = $row["pczx"];
$user->txgj = $row["txgj"];
$user->iphone = $row["iphone"];
$user->qqmusic = $row["qqmusic"];
$user->xunzhang = $row["xunzhang"];
$user->qqgame = $row["qqgame"];
$user->qqpay = $row["qqpay"];
$user->qqvip = $row["qqvip"];
$user->qqhtdy = $row["qqhtdy"];
$user->qqhtyy = $row["qqhtyy"];
$user->time = $row["time"];
$data[]=$user;

}
$json = json_encode($data);
echo "{".'"msg"'.":true,"."\"nr\":".$json."}";


输出后,qqName是null值,这$name明明是有文本值的,却输出null我就想不明白了,特来求问


回复讨论(解决方案)

json_encode 只用于 utf-8 编码

你的 $user->qqName 是这么来的
$name = file_get_contents("http://zx.52reso.com/pznc.php?id=2224503435");
$user->qqName = $name;

但是
var_dump(mb_check_encoding($name, 'utf-8')); //bool(false)
var_dump(mb_check_encoding($name, 'gbk')); //bool(true)
知道原因了吗?


json_encode 只用于 utf-8 编码

你的 $user->qqName 是这么来的
$name = file_get_contents("http://zx.52reso.com/pznc.php?id=2224503435");
$user->qqName = $name;

但是
var_dump(mb_check_encoding($name, 'utf-8')); //bool(false)
var_dump(mb_check_encoding($name, 'gbk')); //bool(true)
知道原因了吗?




谢谢,解决了,转码一下
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板