PHPのプログラムから、APIを使用してSlackへメッセージを送るアプリケーションを作っています。
メッセージは以下のように、可変長の指標名と値が並ぶようなものになります。
11月26日(月)のデータ
来客数 15
売上 1500
客単価 100
このとき、出力を上記のようにフォーマットしたいのですが、おそらく以下の要因で、ズレてしまっています。
①半角スペースが、半角文字分の幅より狭く表示される
②半角大文字アルファベットが、他の半角文字の幅よりも広く表示される
PHP内部では以下のように文字列をフォーマットしており、ログにデバッグ出力したところ、期待通りにフォーマットされています。
(質問用に簡略化しています)
PHP
1$datas = [ 2 '来客数' => 15, 3 '売上' => 1500, 4 '客単価' => 100 5]; 6 7$message = '11月26日(月)のデータ'; 8 9$format = "%1$-30s%2$-d\r\n"; 10foreach ($datas as $key => $value) { 11 // 全角文字を2バイトと数える 12 $message .= sprintf($format, mb_convert_encoding($key, 'SJIS', 'UTF-8'), $value) 13} 14 15// フォーマット時にSJISになったメッセージ文字列を再度UTF-8に変換する 16$message = mb_convert_encoding($message, 'UTF-8', 'SJIS') 17 18/* 作成したメッセージ文字列を、Slack APIで投稿する(省略) */
調べたところ、Slackのフォントはブラウザのフォントに依存するようです。
解決策があるとすればフォントからのアプローチではなく、Slack側の機能でしょうか?
何かアイデアがあればご教授いただきたいです。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/27 08:25
2018/11/27 08:29
2018/11/27 09:17
2018/11/27 09:18
2018/11/27 09:22
2018/11/27 10:00