在使用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