使用标头时,PHP输出echo作为文本

时间:2018-06-12 15:21:26

标签: php

我正在尝试在php,AJAX或任何与JS无关的加载栏中进行加载。

在加载时可以正常显示数字或单词

    echo $text;
    echo str_pad('', 4096) . "\n";

    ob_flush();

    flush();

但问题是它以简单的文字显示所有内容。

因此,我无法通过echo将任何CSS或HTML添加到我的视图中。 我已经包含了这个标题,以便进行刷新工作,并在加载时实际更新我的页面。

header('Content-Type: text/event-stream');

1 个答案:

答案 0 :(得分:0)

您正在使用的标头实际上不会解析为HTML / CSS。

您需要的是:

 ob_implicit_flush( true );

然后通常喜欢上面的

ob_start();

while (true) {
    echo "Something is going on!";
    ob_flush();
    flush();
}

这就是我在大多数项目中的表现。现在,如果这不起作用,您的Web服务器中可能会有一些缓存。我多次遇到这个问题。为了避免这有助于:

header( 'X-Accel-Buffering: no' );
header( 'Content-Encoding: none' );