質問: お世話になります。 PHPで ``` echo json_encode($data, JSON_PRETTY_PRINT); ``` のようにすると、インデントで整形された形でJSONを出力することができます。 それで、この際のインデント文字をタブ文字に変更したいのですが、何か方法はありますでしょうか。 何か良い方法をご存知でしたら、教えていただけると幸いです。 以上、よろしくお願いいたします。
回答: 本家SOに似たような質問がありました。 こちらは空白4つを2つにしたいということでしたが、 タブ文字に置換するのも対して変わりません。 ``` $data = ['some' => 'data']; $json = preg_replace_callback ('/^ +/m', function ($m) { return str_repeat ("¥t", strlen ($m[0]) / 4);//空白数(4つ)で割った数分タブ文字を返却 }, json_encode ($data, JSON_PRETTY_PRINT)); ``` `JSON_PRETTY_PRINT`自体には整形文字の指定は無かったと思います。