如何在PHP中每隔5秒检查一次IF语句?

时间:2014-04-08 04:29:56

标签: php jquery

我有一个li,里面有一个div class="reload",其内容应该每10秒重新加载一次。

<li class="b1">                    
    <div class="reload">
    </div>
</li><!--col-->

所以我有一个脚本可以做到这一点。

<script type="text/javascript">
$('.b1').children('.reload').load('php/reload/reload.php'); // load the content at start

window.setInterval(function(e) {
$('.b1').children('.reload').load('php/reload/reload.php'); // reload the content every 10 sec
}, 10000);

在reload.php中,我从数据库中获取了一些内容。看起来像这样,有点......

<?php 
  // login info
  require("../../connection_to_database_login.php"); 
  // My query
  $result = mysqli_query($l,'SELECT * FROM abcd WHERE efg=1 LIMIT 1');
  // include some stuff
  $r = mysqli_fetch_row($result);for ($p = 0; $p < $r[4]; ++$p){include("../some/stuff_$p.php");};

  // include a random picture script or just load a picture
  if ($r[4] == 0){include ('getRandPic.php');} 
  else {echo ('<img src="images/picture.png" />');} 
  ?>  

到目前为止一切都很好......一切正常。

getRandPic.php 文件..从文件夹中选择一张随机图片

  <?php
  $img_dir = "images/images";
  $images = scandir($img_dir);
  $html = array();
  foreach($images as $img) {
    if($img === '.' || $img === '..') {continue;} 
      if (  (preg_match('/.jpg/',$img))  ||  (preg_match('/.gif/',$img)) || (preg_match('/.tiff/',$img)) || (preg_match('/.png/',$img)) ) {             
        $html[] .= '<img class="img-responsive" src="'.$img_dir.$img.'" />'; 
      } 
      else { continue; }    
  }; 
  echo $html[rand(0,6)];
?>

所以这可行。

但问题是,我想检查它是否“包含随机图片脚本或只是加载图片”每5秒。

因此我需要每5秒检查一次"if ($r[4] == 0)"

所以我的问题是:还有其他办法吗?

2 个答案:

答案 0 :(得分:1)

正如您在评论中所提到的......这只是一个粗略的指南。您必须根据本指南开发和编写自己的代码。

步骤1a: 可选

从您的网页拨打ajax电话到服务器。获取图像文件名。

步骤1b:

在php文件的服务器端执行数据库操作。
假设您有一个表imageTable和列名images,因此您可以使用查询SELECT images FROM imageTable

从数据库中读取

您必须更改查询,添加条件(例如,所有带动物和可爱标签的图像),如果您想限制您想要随机化的文件数,那么您也必须添加它。 / p>

第2步:

从DB中读取数据后,请阅读所有图像名称,并将其放在json格式(json_encode)中。我个人更喜欢json。如果您愿意,还可以在简单字符串中返回所有名称,其中名称以逗号分隔。

第3步:

将您的回复存储在JS中。

var imagesArray = new Array();
    $.ajax({
        type: 'post',
        url: pathtophpfile,
        success: function(htmll) {
                            // get object with all data
            imagesArray= JSON.parse(htmll);
        },
    });

第4步:

在名为imagesArray的js对象中使用它后,使用setInetval每5秒执行一次任务。 读取0到imagesArray长度的随机值,并更改图片代码的来源<img class="img-responsive" src="+ randomimage +" />

答案 1 :(得分:0)

定期更新程序将完成您的任务。 使用ajax框架,它将减少服务器端的数据库连接负担。 看看它。这是实现任务的简单而好的方式。

http://prototypejs.org/doc/latest/ajax/Ajax/PeriodicalUpdater/