PHP::先頭?が表示されるけどなんで!?

PHPでプログラムをしていてごくまれに先頭に?が表示されて「なにこれ。。。キモイ」って思うことがあります。

うん。。。あるんです。

どこで出力されてるやらさっぱり分かんない謎の「?」

その答えはきっと文字コードの問題。

UTF-8(BOM有)の保存形式になってないですか!?

UTF-8(BOM有)だと0xEF BF BF っていう3バイトの符号がファイルの先頭についてしまうんだそう。

先頭以外のところで?があったら、それはきっと「~」でしょう。
これを「~」が?になっちゃう問題を波ダッシュ問題って言います。

カテゴリー: PHP

PHP::複合チャートが作れるグラフライブラリ

PDF帳票で複合グラフチャートを出さなきゃいけなかったのでサーバサイドで画像を生成できるライブラリを探してみた結果を備忘として残します。

結果として3軸以上の複合チャートを実装できるPHPのグラフ・チャートライブラリは見つけられませんでした。

なので、ベースになるSVGのチャートを準備して、プログラム上から折れ線や棒グラフを実装することにしました。だって。。。この方が早いんだもん!w

惜しいところまでいったライブラリをご紹介

  1. pChart
    右左の2軸複合チャートまでは対応できるけど、3軸以上の複合チャートには対応できず。ライブリを継承した別機能を作らないとダメそうです。デフォルトテンプレートになるサンプルが26種類あってコードも比較的シンプルにかけて勉強・解析が楽でした。
  2. SVGGraph
    こちらも左右2軸の複合チャートまでは対応できるみたい。当然といえば当然だけど、グラフテンプレートはめ込み型のライブラリでした。
    なので、複雑なグラフでも自分でテンプレートを作れば何でもできちゃいそうな感じ。
    ただその為には内部構造を理解しながら。。。になるので勉強は大変かもしんない。。。

その他

  1. JpGraph
  2. vnStatPHP
  3. ezGraph component

その他にもPhantomJSっていうコマンドラインベースでwebkitエンジンを利用してHTML画面を画像化する手法もあるようなので、これを使えば、JSライブラリを使って画像を生成することもできるそうです。

— 2015/02/02追記

日本語文字を含むSVGをFPDIで取り込むと文字化けしてしまってこれが解決できず。。。
結局PhantomJSで画像かすることにします

ttcをttfに

フォントのお話しです。

.ttcというフォントは.ttfを複数まとめたファイル形式なんだって!

ってことは、分割もできちゃう。

UniteTTCってソフトでできるそうです。