ホームページ >バックエンド開発 >PHPチュートリアル >PHP は json を生成し、NULL を出力します。

PHP は json を生成し、NULL を出力します。

WBOY
WBOYオリジナル
2016-06-23 13:13:481209ブラウズ

$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 =新しい 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')); " 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)
知道原因了吗?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。