如果你需要和你一起去需要設置請求的情況下file_get_contents
。顯然這個URL需要在標頭中看到一個user-agent
字符串(原因是,你知道... 反機器人安全性)。
以下工作:
<?php
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"User-Agent: foo\r\n"
)
);
$context = stream_context_create($opts);
// Open the file using the HTTP headers set above
$file = file_get_contents('http://yiimp.ccminer.org/api/wallet?address=DshDF3zmCX9PUhafTAzxyQidwgdfLYJkBrd', false, $context);
var_dump($file);
// string(137) "{"currency": "DCR", "unsold": 0.030825917365192, "balance": 0.02007306, "unpaid": 0.05089898, "paid24h": 0.05796425, "total": 0.10886323}"
然而。我強烈建議cURL
file_get_contents()是一個簡單的螺絲刀。非常適合簡單的GET 請求,其中頭部,HTTP請求方法,超時,cookiejar,重定向以及其他重要的事情都無關緊要。 https://stackoverflow.com/a/11064995/2119863
所以請停止file_get_contents。
<?php
// Get cURL resource
$curl = curl_init();
// Set some options - we are passing in a useragent too here
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => 'http://yiimp.ccminer.org/api/wallet?address=DshDF3zmCX9PUhafTAzxyQidwgdfLYJkBrd',
CURLOPT_USERAGENT => 'Sample cURL Request'
));
// Send the request & save response to $resp
$resp = curl_exec($curl);
// Close request to clear up some resources
curl_close($curl);
var_dump(json_decode($resp));
,你會得到:
所有的
object(stdClass)#1 (6) {
["currency"]=>
string(3) "DCR"
["unsold"]=>
float(0.030825917365192)
["balance"]=>
float(0.02007306)
["unpaid"]=>
float(0.05089898)
["paid24h"]=>
float(0.05796425)
["total"]=>
float(0.10886323)
}
首先,當我把那個URL在瀏覽器中我得到了404這可能是它,你可以不回對象 – ArtOsi
。在PHP中,您可以通過在請求完成後立即查看'$ http_response_header'的值來檢查服務器的響應。其次,如果運行json_decode,它會將JSON文本轉換爲一個PHP對象,該對象通常不會正確回顯。所以你必須'var_dump($ obj);'在屏幕上看到它。或者只是'echo $ json;'當然。 – ADyson
@ADyson,有時這個url只是對特定的人不起作用,對我來說它仍然有效,但它在半小時前也沒有工作,在一段時間內再次嘗試 –