[PHP]使用Google API產生QR code

摘要:[PHP]使用Google API產生QR code

 
在現在智慧型手機普及的時代,看到QR code就可以用手機相機掃描,查看藏在裡頭的資訊,而這種行為漸漸變成一種趨勢
想到週圍人在最近提到過,什麼樣的東西想當配QR code讓客戶可以用手機得知一些商品資訊,也讓客戶可以覺得新奇
 
那就想到PHP如何產生QR code呢
查詢了一下資訊,看到有人貼Google Developers上有類似產生QR code的Google API
 
而介紹裡頭寫了詳細的使用說明
 
https://chart.googleapis.com/chart? -所有信息圖表開始的URL,這個URL後跟一個或多個參數/值。
chs - 以像素為單位的圖像大小,格式為<寬度 > x < 高 >
cht -  圖像類型:"qr"是指QR code 
chl - 資料進行編碼,必須是URL的編碼格式
 
 
此外,這裡還有其餘幾個參數的詳細說明
像是choe=<output_encoding>是指說資料進行編碼時所用的編碼方式
 
而在這有寫出一個簡易的範例,讓使用者可以快速地上手
 
搭配jQuery及jQuery AJAX,實際Try一次看看,程式碼如下:
「Google_QRcode.php」
<html>
<head>
    <title>PHP使用Google API產生QR code並使用PHP下載</title>
  
    <script src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
    <script>
        $(function () {
            $("#qrcreate").click(function () {
                createqrcode();           
            });
            $("#range").change(function () {
                createqrcode();
            });
            function createqrcode() {
                var input_text = $("#input_text").val();
                var width = $("#range").val()
                var rectangle = width + "x" + width;
                var url = "https://chart.googleapis.com/chart?chs=" + rectangle + "&cht=qr&chl=" + input_text + "&choe=UTF-8&chld=M|2";
                var qr_code = "<img alt='Your QRcode' src='" + url + "' />";
                $('#qrcode').html(qr_code);
                $('#range_value').html(width);
            }
           
            $("#down_img_btn").click(function(){
                var input_text = $("#input_text").val();
                var range = $("#range").val();
                $.ajax({
                url: "down_img.php",
                data: "&input_text="+input_text+"&range="+range,
                type:"POST",
                dataType:'text',

                success: function(message){
                    document.getElementById("message").innerHTML=message;
                },

                error:   function(jqXHR, textStatus, errorThrown){
                document.getElementById("message").innerHTML=errorThrown;
                }
                });
            });
        });
    </script>
</head>

<body>
        資料內容:<input id="input_text" name="input_text" type="text" /> <input id="qrcreate" type="button" value="建立QRcode" /><br />
        QR code大小:<input id="range" name="range" max="300" min="50" step="10" type="range" value="170" /> Range Value:<label id="range_value">170</label><br />
        <input id="down_img_btn" name="down_img" type="button" value="下載圖片" />
        <div id="message"></div>
        <div id="qrcode"></div>
</body>
</html>
 
「down_img.php」
 <?php
    header('content-type: image/png');
   
    $input_text=$_POST['input_text'];
    $range=$_POST['range'];
    $url="https://chart.googleapis.com/chart?chs=".$range."&cht=qr&chl=".$input_text."&choe=UTF-8&chld=M|2";
    $input = "$url"; //路徑位置
    $output = "C:\\".iconv("UTF-8","big5",$input_text).'.jpg'; //儲存檔案名稱
    file_put_contents($output, file_get_contents($input));
   
    echo('已下載到C:\,檔名為'.$input_text.'.jpg');
  ?>
 
輸出畫面如下圖:

 

下載圖片: