PHP:清除屏幕(或将屏幕设置为空白)

Oma*_*mar -3 php

===================

注意:这不是重复的,因为我已经在链接的问题上尝试了解决方案,但它对我的问题不起作用

===================

如何"擦除"任何以前[浏览器]回显的项目? - 完全清除屏幕(将屏幕设置为空白)?

例如...:

<?php
function test($var) {
    if ($var === 0) { echo "Hello "; }
    if ($var === 1) { echo "World"; }
    if ($var < 0 || $var > 1) { [clear screen]; echo "Number is too big";}
}

test(0);
test(1);
test(666);
Run Code Online (Sandbox Code Playgroud)

========更多详情========

我遇到的问题是这个.该页面呈现HTML的一部分,但当它到达关键字时,它会停止并回显我需要的内容(如果页面没有关键字,则为预期行为).

但是,由于它没有清除屏幕和DOM ...因此,浏览器的屏幕是空白的,没有任何错误消息.这是因为我需要擦除任何先前回显的输出.

在发布此问题之前,我确实尝试过ob_end_clean().但它不起作用:

PHP:

class keywords{

    private static function run(){
    ...pdo code...
    ...some more code...
    if( $sht->rowCount() === 0 ){
        ...[clear screen goes here]...
        exit("Page " . $pageID . " has no keywords");
    else...
    ...more code
    }

    ...more code    
}
Run Code Online (Sandbox Code Playgroud)

在我正在使用的HTML方面...content="<?php keywords::run(); ?>" />.当页面没有关键字时,这是输出(不清除浏览器):

HTML

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">

    <meta name="description"    content="Some page" />  
    <meta name="keywords"       content="Page: 0123456789 Page has no keywords
Run Code Online (Sandbox Code Playgroud)

因此,屏幕为空白,没有任何错误消息

jos*_*ezr 5

PHP文档

ob_start说:

输出缓冲区是可堆叠的,也就是说,当另一个ob_start()处于活动状态时,您可以调用ob_start().只需确保调用ob_end_flush()适当的次数.如果多个输出回调函数处于活动状态,则将按嵌套顺序依次对每个输出回调函数进行过滤.

ob_clean说:

输出缓冲区必须由带有PHP_OUTPUT_HANDLER_CLEANABLE标志的ob_start()启动.否则ob_clean()将无效.

PHP Docs PHP_OUTPUT_HANDLER_CLEANABLE

控制是否可以清除ob_start()创建的输出缓冲区.

从PHP 5.4开始提供.

您确定可以启动/刷新/结束输出缓冲区吗?
你检查过服务器配置了吗?
您确定没有输出缓冲区堆叠吗?