最近,我的代碼沒有改變,我的PHP頁面開始掛在某個區域。它會在該行之前生成頁面上的所有HTML:PHP頁面掛在這段代碼
$tickerJSON = file_get_contents("http://mtgox.com/code/data/ticker.php");
我註釋掉了其他所有內容,這是導致錯誤的原因。
我知道那個JSON url是有效的,並且數組名是正確的。在這種情況下,我不確定問題出在哪裏。任何幫助?
注意:它不顯示部分或白色頁面,它將永遠保持加載而不顯示輸出。
最近,我的代碼沒有改變,我的PHP頁面開始掛在某個區域。它會在該行之前生成頁面上的所有HTML:PHP頁面掛在這段代碼
$tickerJSON = file_get_contents("http://mtgox.com/code/data/ticker.php");
我註釋掉了其他所有內容,這是導致錯誤的原因。
我知道那個JSON url是有效的,並且數組名是正確的。在這種情況下,我不確定問題出在哪裏。任何幫助?
注意:它不顯示部分或白色頁面,它將永遠保持加載而不顯示輸出。
更新:
$tickerJSON = shell_exec('wget --no-check-certificate -q -O - https://mtgox.com/code/data/ticker.php');
你做的遠程連接需要很長的時間。你可以繞過提供超時值。如果時間太長,該函數將不會返回任何數據,但它不會阻止腳本繼續運行。
下一步你需要設置用戶代理:
// Create a stream
$opts = array(
'http'=>array(
'timeout'=> 3, // 3 second timeout
'user_agent'=> 'hashcash',
'header'=>"Accept-language: en\r\n"
)
);
$context = stream_context_create($opts);
$url = "https://mtgox.com/code/data/ticker.php";
$tickerJSON = file_get_contents($url, FALSE, $context);
的問題是遠程服務器似乎故意拖延不發送用戶代理字符串的請求。默認情況下,PHP的用戶代理字符串爲空。
嘗試加入這一行直接呼叫上面:
ini_set('user_agent', 'PHP/' . PHP_VERSION);
我測試過上述使用這個腳本,它爲我工作很大:
<?php
ini_set('user_agent', 'PHP/' . PHP_VERSION);
$tickerJSON = file_get_contents("http://mtgox.com/code/data/ticker.php");
echo $tickerJSON;
你已經在的display_errors打開你的PHP的配置? –
檢查執行'file_get_contents'執行多少秒鐘。寫'$ starttime = microtime(1);'在該行和'print round(microtime(1) - $ starttime,5)之前'''之後。 file_get_contents的第二個參數在那裏看起來沒用。 –
您也可以暫時打開[error-reporting](http://php.net/manual/en/function.error-reporting.php)。 –