使用PHP每个secon更改网页中的图片

时间:2015-12-18 13:02:32

标签: php jquery html image

我有动态更改图片源的网页,并使用PHP和JQuery的组合显示新图像。

这是PHP5脚本:

<?php

    header("Content-Type: image/jpeg");

    $page = $_SERVER['PHP_SELF'];
    $sec = "1";

    include_once "cookie_checker.php";

    function get_file_extension($filename) {
        return substr(strrchr($filename, '.'), 1);
    }

    $path = "./motion";
    $latest_ctime = 0;
    $latest_filename = '';
    $exts = array('jpg');

    $d = dir($path);
    while (false !== ($entry = $d->read())) {
        $filepath = "{$path}/{$entry}";
        $extension = strtolower(get_file_extension($entry));
        if (is_file($filepath) && filectime($filepath) > $latest_ctime && $extension && in_array($extension,$exts)) {
            $latest_ctime = filectime($filepath);
            $latest_filename = $entry;
        }
    }

    echo '<img src="/motion/' . $latest_filename . '" />';
?>

这是代码的Javascript部分:

var auto_refresh = setInterval(function (){
            $('#load_div').load('camera_stream_worker.php');}
    , 1000);

显示图像的HTML:

<div id="load_div">
</div>

该脚本适用于Firefox,但不适用于Internet Explorer。

你能告诉我如何在Internet Explorer中显示图片???

我不明白为什么它不起作用。根据定义,PHP是服务器端编程语言,Internet Explorer正在客户端工作。

我想知道为什么这适用于Firefox,但不适用于Internet Explorer。

由于

2 个答案:

答案 0 :(得分:2)

首先改变你的php内容类型,因为你正在返回html内容。它会起作用

答案 1 :(得分:1)

我怀疑这是浏览器缓存的问题。为避免您的图像被缓存,您可以使用ajax调用发送一些“随机”参数,如时间戳:

var auto_refresh = setInterval(function (){
  $('#load_tweets').load('camera_stream_worker.php?time=' + Date.now());}
, 1000);