忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2024/04/26 17:16 |
PHP1-77:出力バッファリング

基本的にPHPはprint()とかecho()とか書いた時点で文字が出力されますが、小出しに出力せずにバッファに保存しておいて、後で一気に出力、なんてことができます。

ob_start.php 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
    
    //出力バッファリングスタート
        ob_start();
    //printしても表示されずバッファに入れられる
        print('example');
    //バッファリングを終了した時点でバッファが表示される
        ob_end_flush();
    
    
    //引数に関数を入れると、ob_end_flush()時に呼ばれる
        ob_start('htmlspecialchars');
    //printしても表示されずバッファに入れられる
        print('<br />');
    //バッファの内容がhtmlspecialcharsされて表示される
        ob_end_flush();
    
    
    //出力バッファリングスタート
        ob_start();
    //printしても表示されずバッファに入れられる
        print('hogehoge');
    //現在のバッファの内容を取得
        $tmp=ob_get_contents();
    //バッファを削除してバッファリングを終了
        ob_end_clean();
    //$tmpには、ob_start()~ob_get_contents()までに出力した内容が含まれる
        var_dump($tmp);


こんなふうに出力をためておくことができます。
ただこれ、どういう場合に使えばいいのかいまいちよくわからない。

http://www.ideaxidea.com/archives/2008/04/phpob_start.html
こちらでは文字コードをまとめて変更して出力、というのが紹介されていて一見便利そうに見えますが、このような書き方はわかりづらいのでそもそも根本的に行わない方がいいと思います。
変換処理はコントローラあたりに追い出したいところです。
まあ、MVCに分ける程でもない小規模なものならばこれで十分かもしれませんが。

 

PR


2009/05/25 18:51 | Comments(0) | TrackBack() | PHP

トラックバック

トラックバックURL:

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<PHP1-78:APCキャッシュ | HOME | PHP1-76:PHPでページャーつづき>>
忍者ブログ[PR]