PHP.mk документација

ob_end_flush

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.ob-end-flush.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.ob-end-flush.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
ob_end_flush

Референца за `function.ob-end-flush.php` со подобрена типографија и навигација.

function.ob-end-flush.php

ob_end_flush

(PHP 4, PHP 5, PHP 7, PHP 8)

ob_end_flush Испрати (испрати) вратена вредност од активниот ракувач со излез и исклучи го активниот бафер за излез

= NULL

ob_end_flush(): bool

Оваа функција го повикува ракувачот со излез (со PHP_OUTPUT_HANDLER_FINAL знаме), го испраќа неговата вратена вредност, ги отфрла содржините на активниот бафер за излез и го исклучува активниот бафер за излез.

ob_end_flush() ќе откаже без активен бафер за излез започнат со PHP_OUTPUT_HANDLER_REMOVABLE flag.

ob_end_flush() ќе ја испрати вратената вредност на ракувачот со излез дури и ако активниот бафер за излез бил започнат без PHP_OUTPUT_HANDLER_FLUSHABLE flag.

Параметри

Оваа функција нема параметри.

Вратени вредности

Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.

Errors/Exceptions

Ако функцијата откаже, генерира E_NOTICE.

Примери

Пример #1 ob_end_flush() example

Следниот пример покажува лесен начин за испраќање и завршување на сите бафери за излез:

<?php
while (@ob_end_flush());
?>

Види Исто така

  • ob_start() - Вклучи баферирање на излезот
  • ob_get_contents() - Врати ги содржините на излезниот бафер
  • ob_flush() - Испрати (испрати) вратена вредност од активниот ракувач за излез
  • ob_get_flush() - Испрати (испрати) вратена вредност од активниот ракувач со излез, врати ги содржините на активниот бафер за излез и исклучи го
  • ob_end_clean() Исчисти (избриши) ја содржината на активниот излезен бафер и исклучи го

Белешки од корисници Управување со PDO конекции

jhannus на 128kb точка com
21 години пред
A note on the above example...

with PHP 4 >= 4.2.0, PHP 5 you can use a combination of ob_get_level() and ob_end_flush() to avoid using the @ (error suppresion) which should probably be a little faaster.

<?php

while (ob_get_level() > 0) {
    ob_end_flush();
}

?>
nico (на) nokes.de
пред 13 години
best way to compress a css code:

<?php
  header('Content-type: text/css');

  ob_start("compress");
  function compress($buffer) {
    // remove comments
    $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
    // remove tabs, spaces, newlines, etc.
    $buffer = str_replace(array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', $buffer);
    return $buffer;
  }

  include('./template/main.css');
  include('./template/classes.css');

<?php
  ob_end_flush();
?>

Include in <head>:
<link rel="stylesheet" type="text/css" href="/design.php" media="all" />
anatoliy на miraline точка com
пред 14 години
If you enable zlib.output_compression then level count will be increased by 1 and then this code:

<?php while (ob_get_level()) { ob_end_clean(); } ?>

will just freeze your script.
Марк
пред 15 години
Wanted to speed things up and put some processing after the page has been delivered to the client. That drove me almost insane, but finally, I found a solution (php 5.2.5):

<?php
ob_start(); // outer buffer
ob_start(); // inner buffer to catch URL rewrites and other post processing
session_start(); // registers URL rewriter with inner buffer!
echo '...';
// log performance data to log files *after* delivering the page!
register_shutdown_function(array($benchmarkclass,'log_perf_data'));
// now flush output output to client
ob_end_flush();
// need to calculate content length *after* URL rewrite!
header("Content-length: ".ob_get_length());
ob_end_flush();
// now we close the session and do some arbitrary clean-up tasks
// registered using register_shutdown_function()
session_write_close();
?>
brett на realestate-school точка com
пред 23 години
It appears that you can call ob_end_flush() regardless of whether or not output buffering was ever started using ob_start(). This can prove useful because it saves you from having to create conditional statements based on whether a particular function or include file has started output buffering. You can simply call the ob_end_flush() anyway and if there's output in the buffer, it will be sent, otherwise your script will just keep on keepin' on.
skippy на zuavra точка net
20 години пред
Apart from being mostly redundant, ob_end_flush() can be downright damaging in some weird cases.

Actual example: a particular page on an Intranet website which would appear blank on Internet Explorer 6 when ob_start('ob_gzhandler') was called in the beginning and ob_end_flush() at the end.

We couldn't figure out what made that page special no matter what we tried. The ob_ functions were placed in scripts which were include()'d by all pages just the same, but only that page did this.

Even stranger, the problem only appeared on direct browser/server connections. Whenever the connection passed through a proxy the problem dissapeared. I'm guessing some kind of HTTP encoding headers mumbo-jumbo.

Solution: unless you really need it in particular cases, remove the ob_end_flush() call and rely on the builtin, automatic buffer flush.
Патрик
пред 2 години
NOTE: In IIS, flushing the output buffer doesnt work until you add the following to your web.config file under the PHP handler:

responseBufferLimit="0"

I discovered this when I would only get SSE output when the script failed.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.