ć‡șćŠ›ćˆ¶ćŸĄ é–ąæ•°

ć‚è€ƒ

header()およびsetcookie() も揂照ください。

ç›źæŹĄ

  • flush — ă‚·ă‚čテムć‡șćŠ›ăƒăƒƒăƒ•ă‚Ąă‚’ăƒ•ăƒ©ăƒƒă‚·ăƒ„ă™ă‚‹
  • ob_clean — ケクティブăȘć‡ș抛バッファぼ憅ćźčをクăƒȘケ(æ¶ˆćŽ»)する
  • ob_end_clean — ケクティブăȘć‡ș抛甹バッファをクăƒȘケ(æ¶ˆćŽ»)し、ć‡ș抛ぼバッファăƒȘングをă‚Șăƒ•ă«ă™ă‚‹
  • ob_end_flush — ケクティブăȘć‡șćŠ›ç”šăƒăƒƒăƒ•ă‚Ąă‚’ăƒ•ăƒ©ăƒƒă‚·ăƒ„(送信)し、ケクティブăȘć‡ș抛バッファをă‚Șăƒ•ă«ă™ă‚‹
  • ob_flush — ケクティブăȘć‡șćŠ›ăƒăƒłăƒ‰ăƒ©ăźæˆ»ă‚Šć€€ă‚’ăƒ•ăƒ©ăƒƒă‚·ăƒ„(送信)する
  • ob_get_clean — ケクティブăȘć‡ș抛バッファぼ憅ćźčă‚’ć–ćŸ—ă—ă€ăăźăƒăƒƒăƒ•ă‚Ąă‚’ă‚Șăƒ•ă«ă™ă‚‹
  • ob_get_contents — ć‡ș抛甹バッファぼ憅ćźčă‚’èż”ă™
  • ob_get_flush — ケクティブăȘć‡șćŠ›ăƒăƒłăƒ‰ăƒ©ăźæˆ»ă‚Šć€€ă‚’ăƒ•ăƒ©ăƒƒă‚·ăƒ„(送信)し、そぼ憅ćźčă‚’æ–‡ć­—ćˆ—ăšă—ăŠèż”ă—ăŸćŸŒă§ă€ăă‚Œă‚’ă‚Șăƒ•ă«ă™ă‚‹
  • ob_get_length — ć‡șćŠ›ăƒăƒƒăƒ•ă‚Ąăźé•·ă•ă‚’èż”ă™
  • ob_get_level — ć‡ș抛バッファăƒȘăƒłă‚°æ©Ÿæ§‹ăźăƒă‚čăƒˆăƒŹăƒ™ăƒ«ă‚’èż”ă™
  • ob_get_status — ć‡ș抛バッファぼă‚čăƒ†ăƒŒă‚żă‚čă‚’ć–ćŸ—ă™ă‚‹
  • ob_implicit_flush — è‡Șć‹•ăƒ•ăƒ©ăƒƒă‚·ăƒ„ă‚’ă‚ȘăƒłăŸăŸăŻă‚Șăƒ•ă«ă™ă‚‹
  • ob_list_handlers — äœżç”šäž­ăźć‡șćŠ›ăƒăƒłăƒ‰ăƒ©ăźäž€èŠ§ă‚’ć–ćŸ—ă™ă‚‹
  • ob_start — ć‡ș抛ぼバッファăƒȘăƒłă‚°ă‚’æœ‰ćŠčにする
  • output_add_rewrite_var — URL ăƒȘăƒ©ă‚€ă‚żăźć€€ă‚’èżœćŠ ă™ă‚‹
  • output_reset_rewrite_vars — URL ăƒȘăƒ©ă‚€ă‚żăźć€€ă‚’ăƒȘă‚»ăƒƒăƒˆă™ă‚‹
add a note

User Contributed Notes 3 notes

up
18
jgeewax a t gmail ¶
18 years ago
It seems that while using output buffering, an included file which calls die() before the output buffer is closed is flushed rather than cleaned. That is, ob_end_flush() is called by default.

<?php
// a.php (this file should never display anything)
ob_start();
include('b.php');
ob_end_clean();
?>

<?php
// b.php
print "b";
die();
?>

This ends up printing "b" rather than nothing as ob_end_flush() is called instead of ob_end_clean(). That is, die() flushes the buffer rather than cleans it. This took me a while to determine what was causing the flush, so I thought I'd share.
up
3
Anonymous ¶
17 years ago
You possibly also want to end your benchmark after the output is flushed.

<?php
your_benchmark_start_function();

ob_start ();
for ($i = 0; $i < 5000; $i++)
    echo str_repeat ("your string blablabla bla bla", (rand() % 4) + 1)."<br>\n";

                              <----------
echo your_benchmark_end_function();      |
ob_end_flush (); ------------------------
?>
up
3
gruik at libertysurf dot fr ¶
21 years ago
For those who are looking for optimization, try using buffered output.

I noticed that an output function call (i.e echo()) is somehow time expensive. When using buffered output, only one output function call is made and it seems to be much faster.
Try this :

<?php
your_benchmark_start_function();

for ($i = 0; $i < 5000; $i++)
    echo str_repeat ("your string blablabla bla bla", (rand() % 4) + 1)."<br>\n";

echo your_benchmark_end_function();
?>

And then :

<?php
your_benchmark_start_function();

ob_start ();
for ($i = 0; $i < 5000; $i++)
    echo str_repeat ("your string blablabla bla bla", (rand() % 4) + 1)."<br>\n";

echo your_benchmark_end_function();
ob_end_flush ();
?>