php讀取json時無數據(為空)的解決方法


在使用PHP調用一些json接口文件時 如果使用 file_get_contents 獲取頁面json數據后 

再使用json_decode()解析后 數據無法正常輸出 這是的返回值為null

這是由於php的file_get_contents得到的數據前面有三個看不到的BOM字符,將php轉碼或設置頭部編碼為無BOM依舊無法解決

一種可行的辦法就是:

<?php
$str = file_get_contents('json接口地址'); //獲取頁面地址
$str = substr($str,3); //由於php問題file_get_contents得到的數據前面有三個看不到的BOM字符 使用substr函數提取第三個字符后的內容
$json = json_decode($str, true);//解析json代碼 返回為 array 值
echo $json['motd'];//以array 輸出json中的 motd 數組

另外一種:

<?php
$str = file_get_contents('json接口地址'); //獲取頁面地址
$json = json_decode(trim($str,chr(239).chr(187).chr(191)),true); //chr(239).chr(187).chr(191)在輸出時 組成了utf8文件的bom頭,之后用trim函數將其移除
print_r($json); //以array 輸出json

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM