cutmail's blog

write the code

PHPでQRコードを作成する

モバイルサイトを作った時に、いかにユーザーをサイトに導くかというときに、
最近ではQRコードが結構使われていますね。
今の携帯はほとんどカメラが付いているので、これを活用しない手はないということですね。

てか、QRコードって何?
という人はこちら。

QRコードとは
1994年にデンソーウェーブが開発した2次元コードの方式の一つ。携帯電話のアドレス読み取り機能などに採用されている。

 QRコードは小さな正方形の点を縦横同じ数だけ並べたマトリックス型2次元コードで、一辺に21個並べた「バージョン1」から、177個並べた「バージョン40」まで、40通りの仕様が用意されている。点の数が多いほうがたくさんの情報を記録できるが、必要な面積は大きくなっていく。QRコードの3つの角には「回」の字型の「切り出しシンボル」(ファインダパターン)が配置されており、360度どの向きから読み取っても正確に情報が読み出せるようになっている。

http://e-words.jp/w/QRE382B3E383BCE38389.html

まぁ、正方形のバーコードみたいなもんですね。

ライブラリを導入

QRコードPHPでいちから作るのはものすごく大変そうなので、今回はフリーのQRコード作成ライブラリを使用します。

  1. 以下のサイトからパッケージをダウンロード。
    swetake.com
  2. ダウンロードしたものを解凍し、data,image,phpフォルダをサーバーにアップロード。

ちなみに、apache,php,GDライブラリ ver2.0以上が必要です。
さくらのレンタルサーバーは問題なしでした。

プログラム作成

実際にコーディングしてみます。
といっても、たいして書くことはないですが。

<?php

$src = $_GET[src];

if(!$src){
	$src = "http://d.hatena.ne.jp/invent/";
}

$enc_src = urlencode($src);

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html lang=ja>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>PHPQRコード作成</title>
</head>
<body>
<h1>QRコード作成プログラム</h1>
<form name="frm" method="GET" action="index.php">
<p>URLを入力してください。</p>
<input type="text" name="src" size="20">
<br />
<input type="submit" value="作成" />
<br />
<br />
PNG形式<br />
<img src="php/qr_img.php?d=<?php echo $enc_src; ?>&t=P&s=3">
<br />
JPG形式<br />
<img src="php/qr_img.php?d=<?php echo $enc_src; ?>&t=J&s=3">
</body>
</html>

実際にはimgタグのsrcのところで直接ライブラリを呼び出し、GETで渡されてきたURLをライブリのほうに渡しています。

また、パラメータを変えることによって、画像の形式を変えたりサイズを変えたりできます。

  • 画像の表示形式
    tの値を変える。JPGならJ、PNGならP、HだとHTMLモードで出力。
  • サイズ
    sの値を変える。sにサイズを数値で指定。1以上の数値で、省略すると4(png) または 8(jpeg) が選択されるそうです。

他にもバージョンの指定などのパラメータが設定できるようですが、最低限これだけで表示はできます。

実際このURLにBuzzurlの追加ページのURLをセットしてやると、携帯で簡単にブクマできるような気がしないでもないけど、あんまし意味ないか。
f:id:invent:20081216081820p:image