PHPでincludeした時に出力される文字列を変数に入れたい

諸々の出力関連の処理はJSON形式で出力させて、画面描画の処理はJavaScriptでやってるとたまにこういう事があります。

「JSONで出力したものを、出力せずに直接PHPの中で配列として扱いたいなぁ。」
(何を言ってるかよく分からない)

つまりこういうことです。

このファイルを仮にjson.phpとしましょう。
・接続

・dbからデータ取ってくる

・この時、何回も書きたくないようなSQL文を生成して処理

echo json_encode($ary, true);

・画面にJSONが出力される

すでにjson.php内では画面に出力することを前提としているため、データ配列を返却する修正を加えたくないですよね。
できれば、受け手側で処理したい。

1)includeを使う
includeした箇所で画面出力されます

2)file_get_contentsを使う
やってみ。
やってみ。
中身全見え。笑

3)ob_startを使う
ob_startは出力のバッファリングを有効にする関数です。
つまり、出力処理を一旦保留して変数に格納することができます。
使い方はこんな感じ。

参考:PHP: ob_start – Manual

SNSでシェア