===================
===================
如何"擦除"任何以前[浏览器]回显的项目? - 完全清除屏幕(将屏幕设置为空白)?
例如...:
<?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)
因此,屏幕为空白,没有任何错误消息
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开始提供.
您确定可以启动/刷新/结束输出缓冲区吗?
你检查过服务器配置了吗?
您确定没有输出缓冲区堆叠吗?