サンプル・プログラムの実行例

サンプル・プログラム
printJSON.php | サンプル・プログラム本体。 |
pahooInputData.php | データ入力に関わる関数群。 使い方は「PHPでGET/POSTでフォームから値を受け取る」「数値入力とバリデーション」「文字入力とバリデーション」などを参照。include_path が通ったディレクトリに配置すること。 |
バージョン | 更新日 | 内容 |
---|---|---|
1.0.0 | 2025/03/30 | 初版 |
バージョン | 更新日 | 内容 |
---|---|---|
1.8.1 | 2025/03/15 | validRegexPattern() -- debug |
1.8.0 | 2024/11/12 | validRegexPattern() 追加 |
1.7.0 | 2024/10/09 | validURL() validEmail() 追加 |
1.6.0 | 2024/10/07 | isButton() -- buttonタグに対応 |
1.5.0 | 2024/01/28 | exitIfExceedVersion() 追加 |
準備:初期値など
printJSON.php
52: // 初期値(START) =============================================================
53: // 表示幅(ピクセル)
54: define('WIDTH', 600);
55:
56: // 配色
57: // キー
58: define('COLOR_KEY', '#008000');
59: // 文字列
60: define('COLOR_STRING', '#FF4500');
61: // 数値
62: define('COLOR_NUMBER', '#0000FF');
63:
64: // JSONデータの初期値
65: define('DEF_JSON', '{ "name": "papa_pahoo", "id": "123456", "rank": 29, "createdAt": "2024-03-29T11:00:28+09:00", "contactdetails": { "phone": "0123456789", "email":"test@pahoo.org" } }');
66:
67: // 初期値(END) ===============================================================
データ入力に関わる関数群 "pahooInputData.php" はinclude_pathが通ったディレクトリに配置すること。
解説:JSONデータを整形して色分けする
printJSON.php
176: /**
177: * JSONデータを整形して色分けする
178: * @param array $json 元のJSONデータ(連想配列)
179: * @return string 整形後のJSONデータ
180: */
181: function sprintJSON($json) {
182: $pretty = json_encode($json, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
183:
184: // 整形する
185: // キー
186: $pretty = preg_replace('/"(.*?)":/u', '<span style="color:' . COLOR_KEY . ';">"$1"</span>:', $pretty);
187: // 文字列
188: $pretty = preg_replace('/:\s*"(.*?)"/u', ': <span style="color:' . COLOR_STRING . ';">"$1"</span>', $pretty);
189: // 配列の1要素の文字列
190: $pretty = preg_replace('/\[(\s*)"(.*?)"\s*\]/us', '[$1<span style="color:' . COLOR_STRING . ';">"$2"</span> ]', $pretty);
191: // 配列内の文字列(複数要素対応)
192: $json = preg_replace('/"(.*?)"(,?)/u', '<span style="color:' . COLOR_STRING . ';">"$1"</span>$2', $pretty);
193: // 数値
194: $pretty = preg_replace('/:\s+([-0-9.]+)/u', ': <span style="color:' . COLOR_NUMBER . ';">$1</span>', $pretty);
195:
196: $pretty =<<< EOT
197: <pre id ="pretty" name ="pretty">
198: {$pretty}
199: </pre>
200:
201: EOT;
202:
203: return $pretty;
204: }

JSONデータをインデント付きの文字列に整形するには、組み込み関数 json_encode の第2引数にフラグ JSON_PRETTY_PRINT を指定すればよい。さらに、UTF-8文字をエスケープしないよう、フラグ JSON_UNESCAPED_UNICODE を追加した。

JSONデータのキー、文字列、数値の属性に応じて色分けするには、正規表現による文字列置換を行い、HTMLタグで色分けした。
UIについて
ファイルのドロップは「解説:ファイルのドロップ - PHPで撮影場所をマッピング」を、クリップボードへのコピーは、「JavaScriptでクリップボードを使う」を、それぞれご覧いただきたい。
参考サイト
- json_decode:PHP公式
- json_encode:PHP公式
- JSONの定数:PHP公式