繁体   English   中英

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

[英]How to check an IF statement every 5sec in PHP?

我有一个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)"

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

正如您在评论中问的那样...这仅是一个粗略的指南。 您将必须根据本指南开发和编写自己的代码。

步骤1a: 可选

从您的网页向服务器发出ajax调用。 获取图像文件名。

步骤1b:

在服务器端的php文件中执行数据库操作。
假设您有一个表imageTable和列名images那么您将使用查询SELECT images FROM imageTable从数据库中读取

您将不得不更改查询,向其添加条件(例如,带有动物标签和可爱标签的所有图像),如果要限制要随机化的文件数,则也必须添加该条件。

第2步:

从数据库中读取数据后,就像已经做的那样,读取所有图像名称并将其以json格式( json_encode )放置。 我个人更喜欢json。 如果愿意,还可以用简单字符串返回所有名称,其中名称之间用逗号分隔。

第三步:

将您的回复存储在JS中。

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

第四步:

一旦将其包含在名为imagesArray的js对象中,请使用setInetval每5秒执行一次任务。 读取一个从0到imagesArray长度的随机值,并更改图像标签的来源<img class="img-responsive" src="+ randomimage +" />

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM