2015-09-30 36 views
-1

我試圖在循環中使用file_get_contents,以便從URL中持續獲取JSON字符串(每秒)。我需要將結果存儲到一個JavaScript變量中。 這是我的方法,但是我沒有從中得到任何結果。我的網頁只顯示了無盡的裝載。如何在循環中使用file_get_contents?

<?php 
    set_time_limit(0); 
    while(true) 
    { 
    $jsonContent=file_get_contents('http://megarkarsa.com/gpsjson.php'); 
    echo $jsonContent; 
    sleep(10); 
    } 

?> 

在這裏我的JavaScript代碼。

setInterval(function(){ 
     var jsonUpdPostData = <?php echo $jsonContent; ?>; 
}, 100); 

我該怎麼做才能使它工作?任何建議將不勝感激。

+0

你將要與JS做到這一點和AJAX不PHP。 – Maantje

+0

@marsje file_get_contents爲我的需要做得很好,因爲我只需要從url中獲取一個簡單的字符串,並將其存儲到js變量中。但如果你說JS和AJAX比PHP更高效,你能指出我如何使用它嗎?謝謝。 – splim92

+0

你的PHP代碼是一個無限循環。你有睡眠(10)的事實只會阻塞線程10秒,但它不會返回任何東西。 ajax請求等待PHP代碼完成,這從來沒有發生過。爲了使它工作,刪除while循環和睡眠。 JS端的'setInterval'應該足夠了 – Adrien

回答

0

你可以把它以這種方式工作:

getContent.php

<?php 
echo file_get_contents('http://megarkarsa.com/gpsjson.php'); 

xxxx.js

setInterval(function(){ 
    var xmlhttp = new XMLHttpRequest(); 

    xmlhttp.onreadystatechange = function() { 
    if (xmlhttp.readyState == 4) { 
     alert(xmlhttp.responseText); // this contains the new file contents 
    } 
    } 

    xmlhttp.open('GET', 'getContent.php'); 
    xmlhttp.send(); 
}, 100);