從我所做的研究中,我想我可能不得不使用Ajax,但我並不真正熟悉它,而且我似乎無法爲我的函數找到正確的答案。刷新頁面只有當csv行數改變
我沒有使用數據庫(也許我應該但我正在尋找一個短期修復)。我正在使用用戶數據輸入到PHP的csv文件。
我的php正在循環播放csv文件並顯示一個包含內容的表格。它只是一列twitter用戶名。
<php?
echo "<table>\n";
$file = file("Twitter.csv");
$file = array_reverse($file);
foreach($file as $f){
$string=$f;
$string=str_replace("\r\n","",$string);
echo "<tr>\n";
echo "<td><a href='http://twitter.com/".$string."' target='_blank'><img src='https://api.twitter.com/1/users/profile_image?screen_name=".$string."&size=bigger' border='0'></td>\n<td>\n<a href='https://twitter.com/".$string."' class='twitter-follow-button' data-show-count='false' data-lang='en' data-size='large'>Follow @".$string."</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src='//platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document,'script','twitter-wjs');</script>";
echo "</td>\n</tr>\n";
}
echo "\n</table>";
?>
一旦用戶授權的Twitter應用,我得到他們的用戶名,他們將被重定向到列出別人的名字遵循頁面。但是,我希望該頁面在csv文件的行數改變時進行更新。
我需要能夠每x秒運行一次腳本以獲取linecount,並且它是否已更改爲刷新。
我想象的邏輯是簡單的:
$linecount = count(file('Twitter.csv'));
every x seconds{
$checkcount = count(file('Twitter.csv'));
if ($checkcount != $linecount){
refresh page
}
}
覺得這樣的邏輯是對的 - 我只是沒有足夠的教育弄清楚如何編寫代碼的工作。
如果文件沒有更新,頁面將不會刷新,但代碼仍會每x秒執行一次,直到文件發生更改。
怎麼樣,如果你只是檢查文件修改的時間戳? filemtime()? – Miroslav
這個問題仍然沒有答案 - 我怎麼能檢查時間戳或linecount每x秒刷新頁面,如果它不同? – Chris
對不起,我在想時間戳可能更有效率;您可以使用標題刷新頁面('Location:/ URL');我會看看阿賈克斯的解決方案,雖然... – Miroslav