mb_encode_mimeheaderの罠

2007年3月16日(金)

調べてみると意外とポピュラーな話らしいのですが、mail()関数で subject に値を設定する時にmb_encode_mimeheader()関数をずっと使っていたのですが、internal_encodingの設定内容によっては不可解な現象が発生するようです、簡単に言えば文字化けですね。

こいつに出くわし、解決に結構時間をとられてしまった。
結局のところは下記の修正で解決
〔変更前〕
mb_encode_mimeheader(mb_convert_encoding($subject, ‘SJIS-WIN’, ‘UTF-8′, ‘ISO-2022-JP’)

〔変更後〕
“=?ISO-2022-JP?B?”.base64_encode(mb_convert_encoding($subject, ’SJIS-WIN’, ‘UTF-8′)).”?=”

うーん、 mb_encode_mimeheaderは使わない方がよいかな...

JpGraph(Pro版)に付属のライブラリでQRコードを表示:プログラム編

2007年3月13日(火)

プログラム編というほど大げさではないですが。

〔QRコード生成プログラム:qrgoogle.php〕

<?php
require(’{jpgraphをインストールしたディレクトリ}/src/jpgraph.php’);
require(’{jpgraphをインストールしたディレクトリ}/src/jpgraph_canvas.php’);
require(’{jpgraph_qrcodeをインストールしたディレクトリ}/src/jpgraph_qrcode.php’);

$qrcode = QRcodeFactory::Create (’http://www.google.co.jp’);
$qrcode ->Enc ();
$img = new Output_QRcodeIMAGE ($qrcode);

$img ->SetMargin ( 2 );
$img ->SetScale ( 2 );  //QRコードの大きさ:Scaleを1にするとかなり小さくなるが認識が遅くなる、2ぐらいが見た目ちょうど良いかな

$img ->Stroke ();
//$img ->Stroke(’qr.png’);  //ファイルに出力する場合は引数に出力ファイル名を指定
?>

単純にQRコードを表示させるだけなら
http://www.neo-site.jp/labo/contents/pgm/qrgoogle.php
といった感じで直接呼び出せば、下記のように表示される ので

http://www.google.co.jp

これを携帯で読み込ませれば、googleへGo !

JpGraph(Pro版)に付属のライブラリでQRコードを表示:インストール編

2007年3月12日(月)

PHPでグラフ・QRコードを表示するためにJpGraphを導入してみた。
サーバーアクセスログ公開サービスでの使用と携帯ページ向けQRコード表示を想定
——————————————————————————————-
◆JpGraph のインストール
——————————————————————————————-
# tar xzf jpgraph-2.2.1p.tar.gz

# cd jpgraph-2.2.1p/src

# vi jpg-config.inc.php

●以下(40行目付近)のコメントを外す
DEFINE(”CACHE_DIR”,”/tmp/jpgraph_cache/”);
DEFINE(”MBTTF_DIR”,”/usr/share/fonts/ja/TrueType/”);

●TrueTypeの指定
DEFINE(’MINCHO_TTF_FONT’,'ipam.ttf’);
DEFINE(’PMINCHO_TTF_FONT’,'ipamp.ttf’);
DEFINE(’GOTHIC_TTF_FONT’,'ipag.ttf’);
DEFINE(’PGOTHIC_TTF_FONT’,'ipagp.ttf’);
(今回はマニュアルに従い情報処理推進機構のフォントを使用)

# mkdir /tmp/jpgraph_cache

——————————————————————————————-
◆QRコードライブラリ のインストール(というか解凍するだけ)
——————————————————————————————-
# tar xzf jpgraph_qrcode_1.1.tar.gz