【发布时间】:2016-02-25 04:30:26
【问题描述】:
我创建了一个 php 页面来显示一组五个图像中的一个图像。图像是根据从文本文件中读取的数据显示的。另一个应用程序不断更新该文本文件中的数据。因此,每当文件更新时,我的 php 页面都需要从该文件中读取数据,并根据该数据显示图像。我创建了一个无限循环来读取数据。但是当我尝试从浏览器访问 php 页面时,由于无限循环,它没有加载。
$myfile1 = fopen("readfile.txt", "r") or die("Unable to open file!");
$readJsonData = fread($myfile1,filesize("readfile.txt"));
fclose($myfile1);
$obj = json_decode($readJsonData);
$urllogo = 'tatalogo.png';
if(($obj->{"FrontLeft"}) == "TRUE")
{
$url = 'images/FrontLeft.png';
}
else if(($obj->{"FrontRight"}) == "TRUE")
{
$url = 'images/FrontRight.png';
}
else if(($obj->{"RearLeft"}) == "TRUE")
{
$url = 'images/RearLeft.png';
}
else if(($obj->{"RearRight"}) == "TRUE")
{
$url = 'images/RearRight.png';
}
else
{
$url = 'images/Normal.png';
}
// infinite loop
while(1)
{
//reading from the file and refreshing the page.
}
【问题讨论】:
-
老实说,一个进程写入文件而这个进程读取文件内容的整个过程听起来很可疑。也许,您需要从整体上考虑问题,而不是解决这个孤立的问题。
-
不建议无限循环刷新,可以使用间隔。如果该应用程序或每个重新刷新间隔都有响应——比如返回一个布尔值,那么这就是你刷新的标志。如果可能,也可以使用 AJAX 来处理数据。
-
我有一个移动应用程序,它收集一些数据并将数据发送到服务器,然后将其写入文本文件。这个进程读取它的内容并显示它。