[英]Problem parsing JSON data from external url in PHP
我真的是json代碼中的新手,甚至是javascript代碼,但到目前為止我都知道了。 我可以從具有相同信息的本地文件中獲取json數據,但不能從此外部URL獲取: https : //s3.amazonaws.com/dolartoday/data.json
這是我的代碼:
<?php
$json = file_get_contents("https://s3.amazonaws.com/dolartoday/data.json", 'jsonp');
$data = json_decode($json, true);
echo $data['USD']['dolartoday'];
?>
預期的結果,像這樣:6124.24
注意:此代碼是可以的,我從具有相同值的本地文件中獲取數據,但我無法從此外部URL中專門獲取json數據。 我還添加了“ jsonp”,但這沒有用。
您在S3上的JSON文檔無效。
JSON必須使用UTF-8,但您似乎在其中具有擴展的ASCII字符。
正確的錯誤檢查將發現這一點。
$data = json_decode($json, true);
if (is_null($data)) {
echo json_last_error_msg();
die;
}
會打印出來的
Malformed UTF-8 characters, possibly incorrectly encoded
感謝@Stephen的澄清,我找到了解決問題的方法。
<?php
$json = file_get_contents("https://s3.amazonaws.com/dolartoday/data.json", 'jsonp');
$utf8 = utf8_decode($json); //decode UTF-8
$data = json_decode($utf8, true);
echo $data['USD']['dolartoday'];
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.