我怎么能打印文本到网页每秒钟


How can I print text to a webpage every second?

我想让一个网站每秒写一条消息。

<?php echo '111';?>

怎么能这样呢?

如果您希望用户在浏览器中每秒看到一条消息,这在PHP中是不可行的。PHP是一种服务器端语言,这意味着当页面到达浏览器时,PHP的工作就完成了。

您将需要一种客户端语言(如Javascript)来完成此操作,使用setTimeout: http://www.w3schools.com/jsref/met_win_settimeout.asp


在OP的澄清后编辑:

如果您想要的是每X秒执行一次脚本,那么您应该查看cron。您可以使用cron来安排脚本的运行频率。

一个例子是:

  1. 你写了一个脚本,发送一次电子邮件
  2. 将crontab设置为每小时执行一次脚本
  3. 每小时,cron会执行你的脚本,给你发一封电子邮件

这在PHP中是做不到的。相反,这可以用Javascript来完成。如果要显示的消息必须由服务器提供,则需要AJAX事务,这会使事情变得非常复杂。但是,如果消息是预定义的,或者可以动态计算,则非常简单:

<div id='someId'>Message will go here</div>
<script type='text/javascript'>
  var textSpace = document.getElementById('someId').innerHTML;
  var refreshTimeout = setInterval(function() {
     // every second, add another ' message' into the element
     textSpace = textSpace + ' message';
  }, 1000);
</script>

你可以像下面这样把它放到一个循环中

    while(1)
    {
    echo 111;
    sleep(1);
    }

PHP并不适合您想要做的事情。相反,使用Javascript和函数setInterval(functionName, 1000),其中functionName是一个Javascript函数,用于编写您想要的消息。

另一种方法是自动刷新页面:

<meta http-equiv="refresh" content="1">
<?php echo '111';?>