2014-01-24 92 views
3

我有一個存儲字符串的文本文件。文本文件將每1分鐘更改一次。我想在我的php頁面中顯示整個字符串。 我的php代碼只是從文本文件中獲取數據。我希望我的php頁面能夠每分鐘刷新一次並顯示更新的數據。從文本文件中獲取數據並每分鐘更新一次網頁

data.txt文件是:

1~1~10,56,82,34,22,78,56,15,41,25,47,33,48~82-I am Aakash,83- I am Vijay 

我用於讀取數據的PHP代碼是:

<?php 
$myFile = "data.txt"; 
$fh = fopen($myFile, 'r'); 
$theData = fread($fh, filesize($myFile)); 
fclose($fh); 
echo $theData; 
?> 
+0

您將需要一個server.php文件,該文件將監控.txt文件的修改時間標記,並如果需要,生成輸出。在你的網頁(index.php)上,你應該給server.php一個ajax調用。從響應中,您將使用jQuery更新頁面。 (這將是我的做法) – popi

+0

無需使用PHP;使用Javascript和AJAX。 –

+0

可能的重複:http://stackoverflow.com/questions/14446447/javascript-read-local-text-file –

回答

4

您可以使用stream_get_contents。簡單地說,像拖尾一樣流式處理文本文件。你的客戶端html會每分鐘給ajax打電話給用php編寫的服務器端腳本。例如;

PHP: file_read.php

<?php 
if (isset($_GET['tail'])) { 
    session_start(); 
    $handle = fopen('your_txt_file.txt', 'r');// I assume, a.txt is in the same path with file_read.php 
    if (isset($_SESSION['offset'])) { 
    $data = stream_get_contents($handle, -1, $_SESSION['offset']);// Second parameter is the size of text you will read on each request 
    echo nl2br($data); 
    } else { 
    fseek($handle, 0, SEEK_END); 
    $_SESSION['offset'] = ftell($handle); 
    } 
    exit(); 
} 
?> 

HTML:

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <script src="jquery.min.js"></script><!-- give corrected jquery path --> 
    <script> 
    setInterval(function(){get_contents();}, 10000*60); 
    function get_contents() { 
    $.get('file_read.php.php?tail', function(data) { 
     $('#contents').append(data); 
     }); 
    } 
    </script> 
</head> 
<body> 
    <div id="contents">Loading...</div> 
</body> 
</html> 
+0

謝謝先生,但我的文本文件被放在C盤,每分鐘都在變化,我想取數據從文本文件和網頁上顯示,也希望我的網頁刷新每分鐘.means顯示用戶更新的數據infront – user3226468

+0

好吧,你的文件是在C盤上。你的網頁在本地運行。然後,您需要在我的代碼中給出完整路徑,方法是將'your_txt_file.txt'替換爲'c:\ full_path \ your.txt'。在我的答案中的代碼也使得每分鐘撥打阿賈克斯 –

+0

我改變了路徑,但它打印加載.....只有 – user3226468

相關問題