Search
  1. flush〔出力バッファを送信する〕
  2. ob_clean〔出力バッファを消去する〕
  3. ob_end_clean〔出力バッファを消去し、出力バッファを無効にする〕
  4. ob_end_flash〔出力バッファを送信し、出力バッファを無効にする〕
  5. ob_flush〔出力バッファを送信する〕
  6. ob_get_clean〔現在のバッファの内容を取得し、出力バッファを削除する〕
  7. ob_get_contents〔出力バッファの内容を返す〕
  8. ob_get_flush〔出力バッファの内容を返す〕
  9. ob_get_length〔出力バッファの長さを返す〕
  10. ob_get_level〔出力バッファのネスとレベルを返す〕
  11. ob_get_status〔出力バッファのステータスを取得する〕
  12. ob_gzhandler〔出力バッファをgzip圧縮するためのob_startコールバック関数〕
  13. ob_implicit_flush〔自動フラッシュを有効または無効にする〕
  14. ob_list_handlers〔使用中の出力ハンドラの一覧を取得する〕
  15. ob_start〔出力バッファリングを有効にする〕
  16. output_add_rewrite_var〔URLリライタの値を追加する〕
  17. output_reset_rewrite_vars〔URLリライタの値をリセットする〕

flush
出力バッファを送信する

unknown

void flush ( void )

PHPおよびPHPが使用しているCGIやWebサーバーなどのバックエンドの出力バッファを送信します。 これにより、それまでのすべての出力がユーザーのブラウザに対して効率的に出力されます。 返り値はありません。

この関数は、Webサーバーまたはクライアント側のブラウザのバッファリングに影響を与えないため、出力バッファを送信するにはob_flush()またはflush()をコールする必要があります。

<?
if(ob_get_level()==0ob_start();
for ($i 0$i<10$i++){
        echo "<br> Line to show.";
        echo str_pad('',4096)."\n";
        ob_flush();
        flush();
        sleep(2);
}
echo "Done.";
ob_end_flush();
/*

Line to show.
Line to show.
Line to show.
Line to show.
Line to show.
Line to show.
Line to show.
Line to show.
Line to show.
Line to show. Done.
*/
?>

ob_clean
出力バッファを消去する

unknown

void ob_clean ( void )

出力バッファの内容を消去します。 返り値はありません。 ob_end_clean()と異なり、出力バッファの内容は破棄しません。

<?
for($i=0$i<10$i++){
  ob_start();
  echo "This is iteration $i: ";
  // * Don't do this!
  // $buf = ob_get_contents();
  // ob_clean();
  // * Use this instead:
  $buf ob_get_clean();
  echo $buf;
  echo memory_get_usage()."\n";
}
/*
This is iteration 0: 57888
This is iteration 1: 57920
This is iteration 2: 57936
This is iteration 3: 57936
This is iteration 4: 57936
This is iteration 5: 57936
This is iteration 6: 57936
This is iteration 7: 57936
This is iteration 8: 57936
This is iteration 9: 57936
*/
?>

ob_end_clean
出力バッファを消去し、出力バッファを無効にする

unknown

void ob_end_clean ( void )

出力バッファの内容を消去し、出力バッファを無効にします。 バッファの内容はこの関数がコールされると破棄されるため、出力バッファの内容についてさらに何らかの処理を行う場合は、この関数をコールする前にob_get_contents()をコールする必要があります。

成功した場合は、TRUEを返します。 失敗した場合は、FALSEが返り、E_NOTICEエラーが発生します。

<?
# すべての出力バッファを消去する
ob_start();
echo 'Text that won\'t get displayed.';
ob_end_clean();
?>

ob_end_flash
出力バッファを送信し、出力バッファを無効にする

unknown

void ob_end_flash ( void )

出力バッファの内容を出力し、出力バッファを無効にします。 バッファの内容はこの関数がコールされると破棄されるため、出力バッファの内容についてさらに何らかの処理を行う場合は、この関数をコールする前にob_get_contents()をコールする必要があります。

成功した場合は、TRUEを返します。 失敗した場合は、FALSEが返り、E_NOTICEエラーが発生します。

<?
# すべての出力バッファを送信して終了する
while(@ob_end_flush());
?>

ob_flush
出力バッファを送信する

unknown

void ob_flush ( void )

出力バッファの内容を送信します。 返り値はありません。 この関数はob_end_flush()と異なり、出力バッファを破棄しません。 ただし、バッファの内容はこの関数がコールされると破棄されるため、出力バッファの内容についてさらに何らかの処理を行う場合は、この関数をコールする前にob_get_contents()をコールする必要があります。

<?
if(ob_get_level()==0ob_start();
for ($i 0$i<10$i++){
    echo "<br> Line to show.";
    echo str_pad('',4096)."\n";
    # 出力バッファを送信する
    ob_flush();
    flush();
    sleep(2);
}
echo "Done.";
ob_end_flush();
/*

Line to show.
Line to show.
Line to show.
Line to show.
Line to show.
Line to show.
Line to show.
Line to show.
Line to show.
Line to show. Done.
*/
?>

ob_get_clean
現在のバッファの内容を取得し、出力バッファを削除する

unknown

string ob_get_clean ( void )

現在のバッファの中身を返し、出力バッファを削除します。 この関数は、ob_get_contents()ob_end_clean()を同時に実行するのと同じ動作です。 出力バッファが開始されていない場合はFALSEを返します。

<?
ob_start();

echo "Hello World";

$out ob_get_clean();
$out strtolower($out);

var_dump($out); // string(11) "hello world"
?>

ob_get_contents
出力バッファの内容を返す

unknown

string ob_get_contents ( void )

出力バッファの内容を返します。バッファの内容は破棄しません。 出力バッファが開始されていない場合はFALSEを返します。

<?
ob_start();
echo "Hello ";
$out1 ob_get_contents();
echo "World";
$out2 ob_get_contents();
ob_end_clean();

var_dump($out1$out2);
/*
string(6) "Hello "
string(11) "Hello World"
*/
?>

ob_get_flush
出力バッファの内容を返す

unknown

string ob_get_flush ( void )

出力バッファを送信し、その内容を文字列として返し、その後で出力バッファリングを無効にします。 ob_end_flush()と似ていますが、この関数はバッファの内容を文字列として返します。 出力バッファが開始されていない場合はFALSEを返します。

<?
# 出力バッファリングを有効にする
print_r(ob_list_handlers());

# バッファをファイルに保存する
$buffer=ob_get_flush();
file_put_contents('buffer.txt'$buffer);

print_r(ob_list_handlers());
?>

ob_get_length
出力バッファの長さを返す

unknown

int ob_get_length ( void )

出力バッファの内容の長さを返します。 出力バッファが開始されていない場合はFALSEを返します。

<?
ob_start();
echo "Hello ";
# 出力バッファの内容の長さを取得
$len1=ob_get_length();
echo "World";
# 出力バッファの内容の長さを取得
$len2=ob_get_length();
ob_end_clean();
echo $len1.",".$len2// 6,11
?>

ob_get_level
出力バッファのネスとレベルを返す

unknown

int ob_get_level ( void )

出力バッファのネストレベルを返します。 出力バッファが開始されていない場合は0を返します。

<?
// 出力バッファのネスとレベルを取得し、
// 出力バッファが開始されてない場合は、バッファを有効にする
if(ob_get_level()==0ob_start();
for ($i 0$i<10$i++){
    echo "<br> Line to show.";
    # 出力バッファを送信する
    ob_flush();
    echo str_pad('',4096)."\n";
    flush();
    sleep(2);
}
echo "Done.";
ob_end_flush();
/*

Line to show.
Line to show.
Line to show.
Line to show.
Line to show.
Line to show.
Line to show.
Line to show.
Line to show.
Line to show. Done.
*/
?>

ob_get_status
出力バッファのステータスを取得する

unknown

array ob_get_status ( [ bool $full_status ] )

トップレベルの出力バッファのステータス情報を返します。

オプションの第1引数full_statusTRUEを指定すると、すべてのアクティブな出力バッファを返します。 省略またはFALSEを指定した場合は、トップレベルの出力バッファのみを返します。

返り値として、下記の要素を保持する配列が返されます。

Array
(
    [level] => 1
    [type] => 1
    [status] => 0
    [name] => callback
    [del] => 1
)

ob_gzhandler
出力バッファをgzip圧縮するためのob_startコールバック関数

unknown

string ob_gzhandler ( string $buffer, int $モード )

ob_start()用のコールバック関数として使用されることを意図したもので、圧縮されたページをサポートしているブラウザにgzエンコードされたデータを送信することを容易にします。 ob_gzhandler()は、実際に圧縮されたデータを送信する前にブラウザがサポートするcontent encodingの種類を調べ、それに基づいて出力を返します。 圧縮されたページをブラウザがサポートしていない場合は、FALSEを返します。

<?
ob_start("ob_gzhandler");
?>
<html>
<body>
<p>このページは圧縮されます。</p>
</html>
<body>

ob_implicit_flush
自動フラッシュを有効または無効にする

unknown

void ob_implicit_flush ( [ int $フラグ ] )

自動送信を有効または無効に切り替えます。 返り値はありません。 自動送信により、出力関数がコールされるたびに送信が行われるようになります。 そのため、flush()を明示的にコールする必要はありません。

オプションの第1引数フラグTRUEを指定すると自動送信を有効にします。 FALSEを指定すると無効(デフォルト)にします。

 now coding...
module/include/php/ref_outcontrol/ob_implicit_flush.inc

ob_list_handlers
使用中の出力ハンドラの一覧を取得する

unknown

array ob_list_handlers ( void )

使用中の出力ハンドラの一覧を配列で返します。 output_buffering()が有効、あるいはob_start()で無名関数が使用されている場合は、「default output handler」を返します。

<?
// 出力バッファリングを On にします
print_r(ob_list_handlers());
ob_end_flush();

ob_start("ob_gzhandler");
print_r(ob_list_handlers());
ob_end_flush();

// 無名関数
ob_start(create_function('$string''return $string;'));
print_r(ob_list_handlers());
ob_end_flush();

/*
Array
(
)
Array
(
    [0] => ob_gzhandler
)
Array
(
    [0] => default output handler
)
*/
?>

ob_start
出力バッファリングを有効にする

unknown

bool ob_start ( [ callback $output_callback[, int $chunk_size[, bool $erase ]]] )

出力のバッファリングを有効にします。 出力のバッファリングを有効にすると、ヘッダ以外のスクリプトからの出力は実際には行われず、代わりに内部バッファに保存されます。 成功した場合にTRUE、失敗した場合にFALSEを返します。

この内部バッファの内容は、ob_get_contents()で文字列変数にコピーされます。 内部バッファの内容を出力するにはob_end_flash()を使用します。 バッファの内容を出力せずに消去する場合は、ob_end_clean()を使用します。

オプションの第1引数output_callbackには、output_callback関数を指定することができます。 コールバック関数は、引数として文字列を取り、文字列を返します。 コールバック関数は、出力バッファがフラッシュあるいは消去された場合やリクエストの最後にブラウザに出力をフラッシュする際にコールされます。 コールバック関数がコールされた際に、この関数は出力バッファの内容を引数として受け取ります。 コールバック関数は、新規の出力バッファを実際に出力される結果として返す必要があり、この結果はブラウザに送信されます。 コールバック関数がコールできない場合はFALSEを返します(PHP v4.3.2~)。

コールバック関数が2つの引数をとる場合、第2引数はビットフィールドのPHP_OUTPUT_HANDLER_START、PHP_OUTPUT_HANDLER_CONT、PHP_OUTPUT_HANDLER_ENDを含みます。 コールバック関数がFALSEを返すと、元の入力がそのままブラウザに送信されます。 コールバック関数の引数にNULL値を渡すことで回避することができます。

ob_end_clean()ob_end_flush()ob_clean()ob_flush()ob_start()をコールバック関数内からコールすることはできません。 バッファの内容を消去したい場合は、コールバック関数から空文字列("")を返します。 また、print_r()highlight_file()のような出力バッファリング関数もコールバック関数内からはコールできません。

オプションの第2引数chunk_sizeを指定すると、バッファの長さがchunk_sizeを超えるたびに、出力した後でバッファがフラッシュされます。 デフォルトは0です(この関数が最後に一度だけコールされる)。 特殊な値としては1があります。1を指定すると、chunk_sizeは4096になります。

オプションの第3引数eraseFALSEを指定すると、スクリプトが終了するまでバッファは削除サレマsン。

<?
function callback($buffer){
  // applesを全てorangesに置換する
  return (str_replace("apples""oranges"$buffer));
}
# 出力バッファリングを有効にする
ob_start("callback");
?>
<html>
    <body>
        <p>It's like comparing apples to oranges.</p>
    </body>
</html>
<?
# 出力用バッファを消去し、出力のバッファリングを無効にする
ob_end_flush();
?>

output_add_rewrite_var
URLリライタの値を追加する

unknown

bool output_add_rewrite_var ( string $変数名, string $変数の値 )

URLリライトに新しい変数名変数の値のペアを追加します。 成功した場合にTRUE、失敗した場合にFALSEを返します。

変数名変数の値は、URLのGETパラメータおよびフォームのhidden要素から追加されます。 絶対URLはリライトされません。 この関数の挙動は、設定ファイル(php.ini)のurl_rewrite.tagsによって制御されます。

出力バッファが有効になっていない時にこの関数をコールすると、出力バッファが暗黙的に開始されますので注意してください。

<?
output_add_rewrite_var('var''value');

// リンク
echo '<a href="file.php">リンク</a>
<a href="http://example.com">リンク2</a>';

// フォーム
echo '<form action="script.php" method="post">
<input type="text" name="var2" />
</form>';

print_r(ob_list_handlers());

/*
<a href="file.php?var=value">リンク</a>
<a href="http://example.com">リンク2</a>

<form action="script.php" method="post">
<input type="hidden" name="var" value="value" />
<input type="text" name="var2" />
</form>

Array
(
    [0] => URL-Rewriter
)
*/
?> 

output_reset_rewrite_vars
URLリライタの値をリセットする

unknown

bool output_reset_rewrite_vars ( void )

URLリライタをリセットし、output_add_rewrite_var()やセッションによって事前に設置されたリライトの変数を削除します。 成功した場合にTRUE、失敗した場合にFALSEを返します。

<?
session_start();
output_add_rewrite_var('var''value');

echo '<a href="file.php">link</a>';
ob_flush();

output_reset_rewrite_vars();
echo '<a href="file.php">link</a>';

/*
<a href="file.php?var=value">link</a>
<a href="file.php">link</a>
*/
?>

関連コンテンツ

Q. このサイトの情報はお役に立ちましたでしょうか?

投票する 投票結果を見る

管理人に【web拍手】を送るweb拍手(1行メッセージも送れます♪)

pagetop

polarized women