我知道還有其他類似的帖子關于這個,我在這里發瘋了。
我有一些帶有 JSON 的檔案(根據在線驗證器都有效,例如 jsonlint) - 請參閱下面的編輯。
$contents = file_get_contents(DATA_PATH.'/'.$type.'.json');
$data = json_decode($contents, true);
echo var_dump($data);
回傳 NULL
如果我回顯 $contents,我會得到輸出。
我不確定出了什么問題?我知道 file_get_contents 將它放入一個字串中,但是,如何將它放入有效的 JSON 中?使用 fopen() 會有什么不同嗎?
我什至將 JSON 添加到變數中,但結果相同......我一定是愚蠢的。
注意:我將獲得的大多數 JSON 來自 API,這些基于檔案的 JSON 用于測驗目的。
謝謝。
編輯:示例json
{
"data": [{
"id": 1,
"name": "Albania",
"alpha2code": "AL",
"alpha3code": "ALB",
"capital": "Tirana",
"flag": "https://cdn.elenasport.io/flags/svg/1",
"region": "Europe",
"subregion": "Southern Europe",
"timezones": [
"UTC 01:00"
]
},
{
"id": 3,
"name": "Algeria",
"alpha2code": "DZ",
"alpha3code": "DZA",
"capital": "Algiers",
"flag": "https://cdn.elenasport.io/flags/svg/3",
"region": "Africa",
"subregion": "Northern Africa",
"timezones": [
"UTC 01:00"
]
}]
}
uj5u.com熱心網友回復:
您的檔案可能具有UTF-8 BOM,當您將示例 JSON 復制并粘貼到(基于 Web 的)驗證器時,該BOM不會被復制。它是檔案開頭的隱形標記。
如果你運行echo bin2hex(file_get_contents(DATA_PATH.'/'.$type.'.json'))你的檔案應該以開頭7b,這是一個{.
如果它以efbbbf和 a開頭,則7b有一個 BOM。要么自己剝離它,要么使用像 Sublime Text 這樣的文本編輯器重新保存你的 JSON,它允許你配置它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/318446.html
