Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用标头时,PHP输出回显为文本_Php - Fatal编程技术网

使用标头时,PHP输出回显为文本

使用标头时,PHP输出回显为文本,php,Php,我正在尝试用php、AJAX或任何与JS相关的东西来做一个加载条 它可以在加载时显示数字或文字 echo $text; echo str_pad('', 4096) . "\n"; ob_flush(); flush(); 但问题是它用简单的文本显示所有内容 因此,我无法通过echo向视图中添加任何CSS或HTML。 我加入这个标题是为了使flush工作,并在页面加载时实际更新页面 header('Content-Type: text/event-strea

我正在尝试用php、AJAX或任何与JS相关的东西来做一个加载条

它可以在加载时显示数字或文字

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

    ob_flush();

    flush();
但问题是它用简单的文本显示所有内容

因此,我无法通过echo向视图中添加任何CSS或HTML。 我加入这个标题是为了使flush工作,并在页面加载时实际更新页面

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

您使用的标题实际上不会解析为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' );

删除标题(“内容类型:文本/事件流”);使实时更新不起作用,即使在使用了您的代码之后。这很有趣,请问您使用的是什么web服务器/php模块?就像PHP作为模块、fpm还是fcgid运行一样?我试图在工作中实现这一点,我们在这里使用自定义一切编辑:我不知道我到底看到了什么。根据我的经验,上述方法总能解决问题。我曾经在apache中遇到过类似的问题,但唯一的修复方法是在.conf文件中添加“-flush”,其中设置了包装路径,例如:
FCGIWrapper“e:/Web/main/bin/engine.exe-flush-c./../config/engine.ini.php