QRコードを表示するプログラム

URLを入力して変換ボタンをクリックすると、入力したURLのQRコードが表示されます。サイズは大(300x300)、小(150x150)を選択できます。

 

f:id:develog:20161122085610p:plain

f:id:develog:20161122085757p:plain

PHPソース

<?php

//パラメーターが送信されて入れば$paramにセット
$param = "";
if(isset($_GET["param"])) $param = $_GET["param"];

switch($param){
  case "big-qrcode" : show_qrcode(300); break;
  case "small-qrcode" : show_qrcode(150); break;
  default : show_form(); break;
}

//QRコードの表示
function show_qrcode($size){
  $url = urlencode($_GET["url"]);
  $api = "http://chart.apis.google.com/chart?cht=qr&";
  $src = $api."chs={$size}x{$size}&chl={$url}";
  echo "<img src={$src}>";
}
//入力フォームの表示
function show_form(){
/*ヒアドキュメントは任意の文字列(ここではEND_OF_FORM)で、END_OF_FORMの中はecho文の記述が不要になる*/
  echo <<< END_OF_FORM
<form>
  <h3>QRコードに変換したいURLとサイズを指定</h3>
  <input type="text" name="url">
  <select name="param">
    <option value="big-qrcode">大</option>
    <option value="small-qrcode">小</option>
  </select>
  <input type="submit" value="変換">
</form>
END_OF_FORM;
}

/*
日本語は1文字を2バイトで表現する「マルチバイト文字」であるため、日本語として認識させるために「URLエンコード」を行う必要があります。

 

urlencode()関数

文字列をURLエンコードします。

書式  URLエンコードされた文字列 = urlencode( 文字列 )

 

- (ハイフン)、 _ (アンダーバー)、 . (ピリオド)を除くすべての非英数文字(英数文字でない文字)を「%」(パーセント記号)に続く2桁の数字に置き換えます。空白は + に置き換えられます。
*/