cakephpでQRコード生成

cakephpでQRコード生成MEMO。

– module

Image_QRCode を使います。

download : http://pear.php.net/package/Image_QRCode/download
document : https://wiki.php.net/pear/packages/image_qrcode

/lib/ ディレクトリ配下に設置します。

入っていない場合は、pearが必要です。

yum -y install php-pear

– Controller

今回はGETで渡された数列のIDをQRコード画像にして返します。
Layoutはajax用に設定し、余計なLayoutの表示を防ぎます。

    public function get_qr(){
      $this->layout = 'ajax';
      $this->set('some_url', 'http://hogehoge.com');
      return;
    }

– view

表示用のviewでライブラリを読み込みます。

  require_once APPLIBS . 'Image_QRCode-0.1.3/Image_QRCode-0.1.3/Image/QRCode.php';
  $QR = new Image_QRCode();

  $option = array(
  'module_size'   => 4,
  'image_type'    => 'png',
  'output_type'   => 'display',
  'error_correct' => 'H',
  );

  $qrcode = $QR->makeCode(htmlspecialchars($some_url, ENT_QUOTES), $option);

  imagepng($qrcode, "qr.png");
  imagedestroy($qrcode);

– results

こんな感じでアクセスします。

<img src="api.com/get_qr">