batyo / php-cli-display-library
PHP CLI表示ライブラリ(ANSIカラー、フォント、文字幅対応)
v1.0.1
2026-03-23 05:03 UTC
Requires
- php: >=7.4
Requires (Dev)
- phpunit/phpunit: ^9.6.33
This package is auto-updated.
Last update: 2026-04-23 05:27:00 UTC
README
マルチバイト文字に対応したPHP用CLI表示ライブラリです。
ANSIカラー、文字装飾、フォント切り替え、エンコード自動判別とUTF-8統一対応を備えています。
特徴
- 日本語対応:
mb_strwidthによる全角・半角文字幅計算 - エンコード自動判別&UTF-8統一:
EncodingHelperで自動変換 - ANSIカラー・装飾:前景色・背景色・太字・下線に対応
- フォント切り替え:
FontDriverInterfaceで拡張可能(FIGlet等) - シンプルな単一ファイル構成:Composerオートロードもサポート
使い方
基本例
use CLI\Display\AnsiRenderer; use CLI\Display\Style; $renderer = new AnsiRenderer(); $style = new Style('bright_green', null, true); echo $renderer->render('こんにちは、世界!', $style) . "\n";
Displayクラスによる高機能表示
use CLI\Display\Display; use CLI\Display\AnsiRenderer; use CLI\Display\ExternalFigletFontDriver; use CLI\Display\Style; $d = new Display(new AnsiRenderer(), new ExternalFigletFontDriver()); $d->header('サンプル', 'standard', new Style('cyan', null, true)); $d->box("日本語のボックス表示をテストします。全角幅にも対応しています。", 40, new Style('green')); $d->text($d->colorText('赤文字の例', 'red'));
エンコード自動判別・文字幅取得
use CLI\Display\EncodingHelper; $text = "テスト"; // Shift_JISでもOK $utf8 = EncodingHelper::normalizeEncoding($text); $width = EncodingHelper::getDisplayWidth($utf8);
利用できる色名
black, red, green, yellow, blue, magenta, cyan, whitebright_black, bright_red, bright_green, bright_yellow, bright_blue, bright_magenta, bright_cyan, bright_white
フォント拡張
FontDriverInterfaceを実装することで独自フォント描画機能を追加できます。
class MyFontDriver implements CLI\Display\FontDriverInterface { ## インストール Composer での簡単なインストール例: ```bash composer require batyo/php-cli-display-library
注意事項
ExternalFigletFontDriverを利用してヘッダを FIGlet フォントで表示するには、システムにfigletコマンドがインストールされている必要があります。利用できない場合は自動でフォールバック表示になります。- Windows の一部の端末では ANSI エスケープシーケンスが有効になっていないため色や装飾が表示されないことがあります。Windows Terminal や最新の PowerShell を使用するか、端末で ANSI を有効化してください。
ライセンス
MIT License