MW211 EXIT

devlog
PHP/他のPHPの表示結果を取り込む
2011年12月04日
「a,b,c」とかいう文字列を結果として返却するCGI(xxxx.cgi)があったとして
これを呼び出して、配列に格納するのは以下でできる。
┌──────────────────────────────────────┐
│$配列 = explode(',', file_get_contents('xxxx.cgi'));                        │
└──────────────────────────────────────┘
file_get_contents()ってかなり便利だ。

これを疑似的にテストしようとして、
CGIの代わりに以下のような疑似PHP(dummy.php)を作成してみた。
┌──────────────────────────────────────┐
│<?php                                                                       │
│echo <<<___HTML___                                                          │
│a,b,c                                                                       │
│                                                                            │
│___HTML___;                                                                 │
│──────────────────────────────────────│
│$配列 = explode(',', file_get_contents('dummy.php'));                       │
└──────────────────────────────────────┘
ところが、file_get_contents()で参照した時点で、「a,b,c」以外に
「<?php」やら「echo」やら「___HTML___」やら
ソース全部をひっぱてきてしまうため、頓挫してしまった。

ソースの中身じゃなく表示結果だけを取得できないものか。
ということでその方法。
┌──────────────────────────────────────┐
│ob_start();                                                                 │
│include('dummy.php');                                                       │
│$out = ob_get_contents();                                                   │
│ob_end_clean();                                                             │
│$配列 = explode(',', $out);                                                 │
└──────────────────────────────────────┘
他PHPの処理結果を取得するのって、こんな感じなんだね。
分類:PHP