代码之家  ›  专栏  ›  技术社区  ›  Aan

使用PHP刷新页面

  •  201
  • Aan  · 技术社区  · 13 年前

    如何使用PHP定期刷新页面?如果我不能用PHP来做,那么最好的推荐场景是什么?

    14 回复  |  直到 8 年前
        1
  •  370
  •   Peter Mortensen Pieter Jan Bonestroo    12 年前

    你可以用PHP来实现:

    header("Refresh:0");
    

    它会刷新您的当前页面,如果您需要将其重定向到另一个页面,请使用以下方法:

    header("Refresh:0; url=page2.php");
    
        2
  •  123
  •   Peter Mortensen Pieter Jan Bonestroo    12 年前

    在里面 PHP 您可以使用:

    $page = $_SERVER['PHP_SELF'];
    $sec = "10";
    header("Refresh: $sec; url=$page");
    

    或者只使用JavaScript window.location.reload()

        3
  •  21
  •   Peter Mortensen Pieter Jan Bonestroo    12 年前

    您当然可以使用PHP定期刷新页面:

    <?php
        header("refresh: 3;");
    ?>
    

    这将每三秒刷新一次页面。

        4
  •  19
  •   Peter Mortensen Pieter Jan Bonestroo    6 年前

    我发现了两种刷新PHP内容的方法:

    1.使用HTML meta 标签:

    echo("<meta http-equiv='refresh' content='1'>"); //Refresh by HTTP 'meta'
    

    2.使用PHP刷新率:

    $delay = 0; // Where 0 is an example of a time delay. You can use 5 for 5 seconds, for example!
    header("Refresh: $delay;"); 
    
        5
  •  19
  •   Mathlight    6 年前

    除了所有刷新页面的PHP方法外,页面还将使用以下HTML元标记进行刷新:

    <meta http-equiv="refresh" content="5">
    

    看见 Meta refresh - “在给定的时间间隔后自动刷新当前网页或框架”

    您可以在 content 价值

        6
  •  18
  •   Peter Mortensen Pieter Jan Bonestroo    6 年前

    这完全有可能 header() 在PHP中:

    header('Refresh: 1; url=index.php');
    
        7
  •  6
  •   Peter Mortensen Pieter Jan Bonestroo    6 年前

    header('Location: .'); 似乎在Chrome、Firefox、Edge和InternetExplorer11中刷新页面。

        8
  •  3
  •   Peter Mortensen Pieter Jan Bonestroo    6 年前

    回声 meta 标记如下:

    URL是刷新后页面应该重定向到的位置。

    echo "<meta http-equiv=\"refresh\" content=\"0;URL=upload.php\">";
    
        9
  •  1
  •   Peter Mortensen Pieter Jan Bonestroo    12 年前

    您可以使用JavaScript进行刷新。您可以在div中给出要刷新的内容,而不是完整的页面刷新。然后,通过使用JavaScript,您可以只刷新特定的div,而且它的工作速度比完整的页面更新更快。

        10
  •  0
  •   Peter Mortensen Pieter Jan Bonestroo    6 年前

    在PHP中添加此元标记可能会有所帮助:

    echo '<META HTTP-EQUIV="Refresh" Content="0; URL=' . $location . '">';
    
        11
  •  0
  •   Peter Mortensen Pieter Jan Bonestroo    6 年前

    一个技巧是在URL的末尾添加一个随机数。这样就不必每次都重命名文件。例如:

    echo "<img src='temp.jpg?r=3892384947438'>"
    

    只要随机数不同,浏览器就不会缓存它,但网络服务器会忽略它。

        12
  •  0
  •   Ehsan Mohebbi    4 年前

    将以下函数添加到项目中:

    function redirect($filename) {
        if (!headers_sent())
            header('Location: '.$filename);
        else {
            echo '<script type="text/javascript">';
            echo 'window.location.href = \''.$filename.'\';';
            echo '</script>';
            echo '<noscript>';
            echo '<meta http-equiv="refresh" content="0;url=\''.$filename.'\'" />';
            echo '</noscript>';
        }
        exit();
    }
    

    函数调用:

    redirect($_SERVER['REQUEST_URI']);
    
        13
  •  -1
  •   Peter Mortensen Pieter Jan Bonestroo    6 年前

    PHP 是服务器端语言,因此您不能使用PHP刷新页面,但JavaScript是刷新页面的最佳选项:

    location.reload();
    

    访问 Location reload() method

        14
  •  -2
  •   Peter Mortensen Pieter Jan Bonestroo    12 年前

    你不能在 PHP 。一旦加载了页面,PHP就会死亡并失去控制。

    您有几个选择:

    • 使用 JavaScript
    • 使用刷新元标签, <meta http-equiv="refresh" content="5">

    我认为 refresh meta tag 是最简单、最方便的。