MW211 EXIT

devlog
PHP/出力制御関数の例
2013年09月22日
まず、標準出力の例。
┌──┬───────────────────────────────────┐
│記述│echo '出力';                                                          │
├──┼───────────────────────────────────┤
│結果│出力                                                                  │
└──┴───────────────────────────────────┘
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
続いて、出力制御(ob)を経由した場合の例。
┌──┬───────────────────────────────────┐
│記述│ob_start();                                                           │
│    │echo '出力';                                                          │
│    │ob_end_flush();                                                       │
├──┼───────────────────────────────────┤
│結果│出力                                                                  │
└──┴───────────────────────────────────┘
ちなみに、途中で投げたしても(最後の処理を書き忘れても)補足されるようだ。
でも、これはやめた方がいいだろう。
┌──┬───────────────────────────────────┐
│記述│ob_start();                                                           │
│    │echo '出力';                                                          │
├──┼───────────────────────────────────┤
│結果│出力                                                                  │
└──┴───────────────────────────────────┘
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
次に、出力しないで破棄する場合の例。当然ながら何も出力されない。
┌──┬───────────────────────────────────┐
│記述│ob_start();                                                           │
│    │echo '出力';                                                          │
│    │ob_end_clean();                                                       │
├──┼───────────────────────────────────┤
│結果│(出力なし)                                                            │
└──┴───────────────────────────────────┘
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
直前に文字列に退避しておいた場合の例。本体がなくなっても退避されている。
┌──┬───────────────────────────────────┐
│記述│ob_start();                                                           │
│    │echo '出力';                                                          │
│    │$ob = '[' . ob_get_contents() . ']';                                  │
│    │ob_end_clean();                                                       │
│    │echo $ob;                                                             │
├──┼───────────────────────────────────┤
│結果│[出力]                                                                │
└──┴───────────────────────────────────┘
本体も出力すれば、二重に出力される。(本体はなくなっていない)。
┌──┬───────────────────────────────────┐
│記述│ob_start();                                                           │
│    │echo '出力';                                                          │
│    │$ob = '[' . ob_get_contents() . ']';                                  │
│    │ob_end_flush();                                                       │
│    │echo $ob;                                                             │
├──┼───────────────────────────────────┤
│結果│出力[出力]                                                            │
└──┴───────────────────────────────────┘
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ちなみにクリアして退避にすれば、本体はなくなっているので、重複しない。
┌──┬───────────────────────────────────┐
│記述│ob_start();                                                           │
│    │echo '出力';                                                          │
│    │$ob = '[' . ob_get_clean() . ']';                                     │
│    │ob_end_flush();                                                       │
│    │echo $ob;                                                             │
├──┼───────────────────────────────────┤
│結果│[出力]                                                                │
└──┴───────────────────────────────────┘
分類:PHP