2016-07-14 98 views
-1

我读到这对服务器发送的事件:https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events在那里,他们给在PHP中比如将一个事件。我已经了解到,头文件指令必须是脚本中的第一条指令。不过,我需要在发送事件之前做一些预处理:服务器发送的事件:如何触发发送

//Do some preprocessing in order the determine whether to send an event or not 
if ($sendevent) { 
    header("Content-Type: text/event-stream\n\n"); 
    // echo the data 
} 

显然为“头”是不是第一个指令,这是不可能的。如何解决这个问题呢?发送事件只能通过从客户端发送请求来触发?

回答

0

The documentation for the header() function says

记住header()函数被发送任何实际输出之前必须被调用。

这意味着你可以包括任何数量的指令,但你的脚本必须在调用之前header()不输出任何东西。 您if不输出任何东西,所以它的罚款。

小心的PHP开始标记之前不要有空格字符。

+0

我明白了!这是在我身边一个误区:要求仅适用于传输到客户端的数据,而不是在不被传递到客户端脚本的PHP代码。非常感谢这些信息! – Sempervivum