每隔一秒使用PHP更改网页中的图片


Change picture in webpage using PHP every secon

我有一个网页,它可以动态更改图片来源,并使用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是服务器端的编程语言,InternetExplorer是客户端的工作语言。

我想知道为什么这在Firefox中有效,但在Internet explorer中无效。

感谢

首先,在返回html内容时更改php内容类型。它将工作

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

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