使用 Google API 將文字或網址轉換成 QRCode (下)

by - 上午11:08

使用 Google Char API 所產生本站的 QRCode  A-Fu Design
使用 Google Char API 所產生本站的 QRCode

上一篇提到的 QRCode 這裡提供的是下集,使用 POST 方式來取得 QRCode,以三種不同的語法取得,可以使用到基礎的 HTML 也可使用到顯在幾較多人使用的 JavaScript 語法,或者是很方便使用的 PHP 程式碼來取的 QRCode 顯示在您的網頁當中。

使用方法:
方法一 純 HTML 取得 QRCode
<form action='https://chart.googleapis.com/chart' method='POST'>
  <!-- 輸入產生的圖片類型 qr 即表示 QRCode -->
  <input type='hidden' name='cht' value='qr' />
  <!-- 產生圖片的高與寬格式為 寬度x高度 -->
  <input type='hidden' name='chs' value='300x300' />
  <!-- 輸入需要轉換的文字或網址 -->
  <input type='hidden' name='chl' value='This is my QR code'/>
  <input type='submit'  />
</form>


方法二 使用 JavaScript 取得 QRCode
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <script type='application/javascript'>
    function loadGraph() {
      var frm = document.getElementById('post_form');
      if (frm) {
       frm.submit();
      }
    }
  </script>
  </head>
  <body onload="loadGraph()">
    <form action='https://chart.googleapis.com/chart' method='POST' id='post_form'
          onsubmit="this.action = 'https://chart.googleapis.com/chart?chid=' + (new Date()).getMilliseconds(); return true;">
      <!-- 輸入產生的圖片類型 qr 即表示 QRCode -->
      <input type='hidden' name='cht' value='qr' />
      <!-- 產生圖片的高與寬格式為 寬度x高度 -->
      <input type='hidden' name='chs' value='300x300' />
      <!-- 輸入需要轉換的文字或網址 -->
      <input type='hidden' name='chl' value='This is my QR code' />
      <input type='submit'  />
    </form>
  </body>
</html>


方法三 使用 PHP 取得 QRCode
  header('content-type: image/png');
  // 避免暫存狀況所以使用亂數
  $url = 'https://chart.googleapis.com/chart?chid=' . md5(uniqid(rand(), true));
  $chd = 't:';
  for ($i = 0; $i < 150; ++$i) {
    $data = rand(0, 100000);
    $chd .= $data . ',';
  }
  $chd = substr($chd, 0, -1);

  // 傳送的參數值
  $qrcode = array(
    'cht' => 'qr',            // 輸入產生的圖片類型 qr 即表示 QRCode
    'chs' => '300x300', // 產生圖片的高與寬格式為 寬度x高度
    'chl' => $chd);        // 輸入需要轉換的文字或網址

  // 送出並緩存
  $context = stream_context_create(
    array('http' => array(
      'method' => 'POST',
      'content' => http_build_query($qrcode))));
  fpassthru(fopen($url, 'r', false, $context));


以上是使用 POST 方式來取得 QRCode

You May Also Like

0 意見