Heim  >  Artikel  >  Backend-Entwicklung  >  利用php生成二维码,非常实用

利用php生成二维码,非常实用

高洛峰
高洛峰Original
2016-10-17 11:13:001571Durchsuche

大家经常见到条形码和二维码,特别是智能手机时代这些码更显得活跃了,今天就为大家分享一下如何使用php生成条形码,至于如何生成二维码,一般常用的试调用google的开放api来生成,言归正传,直接上代码了:

<?php 
function UPCAbarcode($code) { 
  $lw = 2; $hi = 100; 
  $Lencode = array(&#39;0001101&#39;,&#39;0011001&#39;,&#39;0010011&#39;,&#39;0111101&#39;,&#39;0100011&#39;, 
                   &#39;0110001&#39;,&#39;0101111&#39;,&#39;0111011&#39;,&#39;0110111&#39;,&#39;0001011&#39;); 
  $Rencode = array(&#39;1110010&#39;,&#39;1100110&#39;,&#39;1101100&#39;,&#39;1000010&#39;,&#39;1011100&#39;, 
                   &#39;1001110&#39;,&#39;1010000&#39;,&#39;1000100&#39;,&#39;1001000&#39;,&#39;1110100&#39;); 
  $ends = &#39;101&#39;; $center = &#39;01010&#39;; 
  /* UPC-A Must be 11 digits, we compute the checksum. */ 
  if ( strlen($code) != 11 ) { die("UPC-A Must be 11 digits."); } 
  /* Compute the EAN-13 Checksum digit */ 
  $ncode = &#39;0&#39;.$code; 
  $even = 0; $odd = 0; 
  for ($x=0;$x<12;$x++) { 
    if ($x % 2) { $odd += $ncode[$x]; } else { $even += $ncode[$x]; } 
  } 
  $code.=(10 - (($odd * 3 + $even) % 10)) % 10; 
  /* Create the bar encoding using a binary string */ 
  $bars=$ends; 
  $bars.=$Lencode[$code[0]]; 
  for($x=1;$x<6;$x++) { 
    $bars.=$Lencode[$code[$x]]; 
  } 
  $bars.=$center; 
  for($x=6;$x<12;$x++) { 
    $bars.=$Rencode[$code[$x]]; 
  } 
  $bars.=$ends; 
  /* Generate the Barcode Image */ 
  $img = ImageCreate($lw*95+30,$hi+30); 
  $fg = ImageColorAllocate($img, 0, 0, 0); 
  $bg = ImageColorAllocate($img, 255, 255, 255); 
  ImageFilledRectangle($img, 0, 0, $lw*95+30, $hi+30, $bg); 
  $shift=10; 
  for ($x=0;$x<strlen($bars);$x++) { 
    if (($x<10) || ($x>=45 && $x<50) || ($x >=85)) { $sh=10; } else { $sh=0; } 
    if ($bars[$x] == &#39;1&#39;) { $color = $fg; } else { $color = $bg; } 
    ImageFilledRectangle($img, ($x*$lw)+15,5,($x+1)*$lw+14,$hi+5+$sh,$color); 
  } 
  /* Add the Human Readable Label */ 
  ImageString($img,4,5,$hi-5,$code[0],$fg); 
  for ($x=0;$x<5;$x++) { 
    ImageString($img,5,$lw*(13+$x*6)+15,$hi+5,$code[$x+1],$fg); 
    ImageString($img,5,$lw*(53+$x*6)+15,$hi+5,$code[$x+6],$fg); 
  } 
  ImageString($img,4,$lw*95+17,$hi-5,$code[11],$fg); 
  /* Output the Header and Content. */ 
  header("Content-Type: image/png"); 
  ImagePNG($img); 
} 
?>


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn