諸々の出力関連の処理は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は出力のバッファリングを有効にする関数です。
つまり、出力処理を一旦保留して変数に格納することができます。
使い方はこんな感じ。
// バッファスタート
ob_start();
// 該当ファイルのインクルード(通常であれば文字出力されます)
include_once("json.php");
// 出力された内容を変数に格納
$json = ob_get_contents();
// バッファ終了
ob_end_clean();
// 受け取ったのはJSON文字列だったので変数に変換
$ary = json_decode($json, true);
// あとはお好きなように!