PHPでQRコードを作成する方法

QRコードって自分で作れるのかな?と思って調べてみたらPHPで簡単に作れることが分かりました。

実際に作成した簡単なサンプルを元に解説していきます。

目次

PHPでQRコードを作成する方法

QRコードを作成するには、既にQRコードを作成するライブラリが用意されているのでそれを使います。

ダウンロードして実行するだけですが、最初は分からないですよね。

手順1.ライブラリをダウンロード

ライブラリをダウンロードします。

ダウンロードは、こちらのページからできます。

PHPで作成したかったので「QRコード クラス ライブラリ for PHP4/5 ver. 0.50beta」を選択しました。

ダウンロードファイルの形式は tar.gz ですね。

これは見慣れない人もいるかもしれないですが、Windowsのzipみたいなもんです。

無料の解凍ソフトで充分解凍できます。

 

展開すると以下のような構成になってます。

phpフォルダの中には qr_img.php というPHPファイルがあり、これがQRコードを作成するPHPの本体です。

README.txtは日本語なので面倒ですがとりあえず読んでおきましょう。

 

README.txt以外のフォルダ4つをHTTPアクセスできる場所に配置します。

次は実行します。

手順2.ライブラリ実行

README.txtも読んだけど文字が多くていまいち分からん・・・。

ということで、とりあえず php/qr_img.php にそのままアクセスしてみました(笑)

http://domain.com/php/qr_img.php

のような感じです。

実行したら500エラーになりました。

 

コードを見るとGETパラメータを受け取っていて、d がQRコードで読み取った結果の文字列になるみたいです。

この d を設定していないとエラーになります。

当然ですね。

 

なので

http://domain.com/php/qr_img.php?d=aaa

のようにURLを書いて実行したらQRコードの画像でました!

 

ただ、HTMLに画像が表示されるのではなく、画像をブラウザで開いたような感じです。

コードを見ると、「レスポンスは画像で!」ってコードがありました。

Header("Content-type: image/".$qrcode_image_type);

実行結果は画像になるんですね。

 

ならば、

<img src="php/qr_img.php?d=aaa">

のように書けばHTMLに画像を表示させることができますね。

サンプルコードの完成形

上記を踏まえて画面で入力した文字列をQRコードにして画面に表示するサンプルを作成しました。

ファイル名は index.php とし、phpディレクトリと同じ階層に配置しました。

 

非常に簡単ですが、以下がそのコードになります。

<?php
if (isset($_POST["qrtext"])) {
	$qrtext = $_POST["qrtext"];
}
?>
<html>
  <head>
    <meta charset="UTF-8">
    <title>LINEテスト</title>
    <meta name="description" content="このページの概要を書く">
    <link rel="stylesheet" href="css/style.css">
  </head>
  <body>
	<p>URLやテキストなど</p>
	<form action="" method="POST">
		<input type="text" name="qrtext" value="<?php echo $qrtext; ?>"/>
		<input type="submit" value="送信" />
	</form>
	<?php
	if (!empty($qrtext)) {
		?><img src="php/qr_img.php?d=<?php echo $qrtext; ?>"><?php
	}
	?>
  </body>
</html>

ブラウザで開くと初期表示は以下のようになります。

試しにこのページのURLを入力して実行してみました。

おお!!いい感じですな!!(←自画自賛)

まとめ

QRコードをPHPで作成する方法をサンプルコードつきで解説しました。

ライブラリはswetake.comさんからダウンロードできます。

ダウンロードしたら展開し、サーバーにアップロード。

上記のサンプルコード(index.php)もアップロードしたら、QRコード作れます。

この記事を書いた人

ライターのプロフィールが入ります。このライター情報を入れたくない場合は管理画面の ユーザー > あなたのプロフィールの「プロフィール情報」を未入力にすれば表示されません。逆に「プロフィール情報」を入力することでライター情報を表示できます。

コメント

コメントする

CAPTCHA


目次
閉じる