Rumah pembangunan bahagian belakang tutorial php PHP生成条形码大揭秘_PHP

PHP生成条形码大揭秘_PHP

May 29, 2016 am 11:48 AM

1.什么是条形码?

百度百科定义:条形码(barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成平行线的图案。在日常生活中,条形码可以标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件地点起止、类别、日期等许多信息。条形码编码格式具体请参考

打印出来的优惠券,商家需要用验证器读取条形码,来获得其有效性。

2.如何生成条形码?

首先找到强大的开源资料,在barcode官网下载barcodegen.1d-php5.v5.0.1.zip版本,然后解压文件放到你的Apache服务器的根目录下

2.1文件结构:

2.2具体解析

(1)class文件夹是已封装好生成条形码的类,只需要调用即可。

(2)index.php是一个可选择条件生成条形码的功能,是主程序的入口,而html文件夹是提供的被引用的代码,code39.php指的是指向默认的编码格式。

<&#63;php 
header('Location: html/code39.php'); 
&#63;> 
Salin selepas log masuk

(3)test.php是另外一个例子,通过代码直接生成HELLO条形码。 

View Code  
 
<&#63;php 
// 引用class文件夹对应的类 
require_once('class/BCGFontFile.php'); 
require_once('class/BCGColor.php'); 
require_once('class/BCGDrawing.php'); 
 
// 条形码的编码格式 
require_once('class/BCGcode39.barcode.php'); 
 
// 加载字体大小 
$font = new BCGFontFile('./class/font/Arial.ttf', 18); 
 
//颜色条形码 
$color_black = new BCGColor(0, 0, 0); 
$color_white = new BCGColor(255, 255, 255); 
 
$drawException = null; 
try { 
  $code = new BCGcode39(); 
  $code->setScale(2);  
  $code->setThickness(30); // 条形码的厚度 
  $code->setForegroundColor($color_black); // 条形码颜色 
  $code->setBackgroundColor($color_white); // 空白间隙颜色 
  $code->setFont($font); //  
  $code->parse('HELLO'); // 条形码需要的数据内容 
} catch(Exception $exception) { 
  $drawException = $exception; 
} 
 
//根据以上条件绘制条形码 
$drawing = new BCGDrawing('', $color_white); 
if($drawException) { 
  $drawing->drawException($drawException); 
} else { 
  $drawing->setBarcode($code); 
  $drawing->draw(); 
} 
 
// 生成PNG格式的图片 
header('Content-Type: image/png'); 
 
 
$drawing->finish(BCGDrawing::IMG_FORMAT_PNG); 
&#63;>
Salin selepas log masuk

3.实际应用

对于上面有个大概的了解后,下面我们可以重新整合下代码,更加方便的使用它。

首先新建buildcode.php文件中,根据test.php文件进行改写,从请求的文件中获取数据:

1).条形码的编码格式

2).条形码需要的数据内容

View Code  
<&#63;php 
// Including all required classes 
require_once('class/BCGFontFile.php'); 
require_once('class/BCGColor.php'); 
require_once('class/BCGDrawing.php');  
$codebar = $_REQUEST['codebar']; //条形码将要数据的内容  
// Including the barcode technology 
require_once('class/'.$codebar.'.barcode.php');  
// Loading Font 
$font = new BCGFontFile('./class/font/Arial.ttf', 12);  
// The arguments are R, G, B for color. 
$color_black = new BCGColor(0, 0, 0); 
$color_white = new BCGColor(255, 255, 255);  
$drawException = null; 
try { 
  $code = new $codebar();//实例化对应的编码格式 
  $code->setScale(2); // Resolution 
  $code->setThickness(23); // Thickness 
  $code->setForegroundColor($color_black); // Color of bars 
  $code->setBackgroundColor($color_white); // Color of spaces 
  $code->setFont($font); // Font (or 0) 
  $text = $_REQUEST['text']; //条形码将要数据的内容 
  $code->parse($text); 
} catch(Exception $exception) { 
  $drawException = $exception; 
}  
/* Here is the list of the arguments 
 - Filename (empty : display on screen) 
 - Background color */ 
$drawing = new BCGDrawing('', $color_white); 
if($drawException) { 
  $drawing->drawException($drawException); 
} else { 
  $drawing->setBarcode($code); 
  $drawing->draw(); 
}  
// Header that says it is an image (remove it if you save the barcode to a file) 
header('Content-Type: image/png');  
// Draw (or save) the image into PNG format. 
$drawing->finish(BCGDrawing::IMG_FORMAT_PNG); 
&#63;> 
Salin selepas log masuk

然后新建test.html文件,向buildcode.php请求数据

<!DOCTYPE html> 
<html> 
<head> 
<title>Test with embedded image</title> 
</head> 
<body> 
 <img  src="/static/imghw/default1.png"  data-src="buildcode.php&#63;codebar=BCGcode39&text=abc123"  class="lazy"/ alt="PHP生成条形码大揭秘_PHP" > 
</body> 
</html> 
Salin selepas log masuk

最后进行访问,浏览器直接生成png格式的条形码

其中codebar支持的编码格式可以由用户请求所得:

/*'BCGcodabar','BCGcode11','BCGcode39','BCGcode39extended','BCGcode93',  
'BCGcode128','BCGean8','BCGean13','BCGisbn','BCGi25','BCGs25','BCGmsi',  
'BCGupca','BCGupce','BCGupcext2','BCGupcext5','BCGpostnet','BCGothercode'*/ 

剩下的就是验证了

4.验证

我们如何验证条形码是否有效,即能否读出条形码中的内容。

先将图片保存下来,然后访问官网提供的验证功能,将图片上传就Ok了! 

今天和大家一起揭秘了php如何生成条形码的,希望大家可以对条形码的形成有个大概的了解,对今后的学习有所帮助。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bekerja dengan Data Sesi Flash di Laravel Bekerja dengan Data Sesi Flash di Laravel Mar 12, 2025 pm 05:08 PM

Laravel memudahkan mengendalikan data sesi sementara menggunakan kaedah flash intuitifnya. Ini sesuai untuk memaparkan mesej ringkas, makluman, atau pemberitahuan dalam permohonan anda. Data hanya berterusan untuk permintaan seterusnya secara lalai: $ permintaan-

Curl dalam PHP: Cara Menggunakan Pelanjutan PHP Curl dalam API REST Curl dalam PHP: Cara Menggunakan Pelanjutan PHP Curl dalam API REST Mar 14, 2025 am 11:42 AM

Pelanjutan URL Pelanggan PHP (CURL) adalah alat yang berkuasa untuk pemaju, membolehkan interaksi lancar dengan pelayan jauh dan API rehat. Dengan memanfaatkan libcurl, perpustakaan pemindahan fail multi-protokol yang dihormati, php curl memudahkan execu yang cekap

Respons HTTP yang dipermudahkan dalam ujian Laravel Respons HTTP yang dipermudahkan dalam ujian Laravel Mar 12, 2025 pm 05:09 PM

Laravel menyediakan sintaks simulasi respons HTTP ringkas, memudahkan ujian interaksi HTTP. Pendekatan ini dengan ketara mengurangkan redundansi kod semasa membuat simulasi ujian anda lebih intuitif. Pelaksanaan asas menyediakan pelbagai jenis pintasan jenis tindak balas: Gunakan Illuminate \ Support \ Facades \ http; Http :: palsu ([ 'Google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

12 skrip sembang php terbaik di codecanyon 12 skrip sembang php terbaik di codecanyon Mar 13, 2025 pm 12:08 PM

Adakah anda ingin memberikan penyelesaian segera, segera kepada masalah yang paling mendesak pelanggan anda? Sembang langsung membolehkan anda mempunyai perbualan masa nyata dengan pelanggan dan menyelesaikan masalah mereka dengan serta-merta. Ia membolehkan anda memberikan perkhidmatan yang lebih pantas kepada adat anda

Terangkan konsep pengikatan statik lewat dalam PHP. Terangkan konsep pengikatan statik lewat dalam PHP. Mar 21, 2025 pm 01:33 PM

Artikel membincangkan pengikatan statik lewat (LSB) dalam PHP, yang diperkenalkan dalam Php 5.3, yang membolehkan resolusi runtime kaedah statik memerlukan lebih banyak warisan yang fleksibel. Isu: LSB vs polimorfisme tradisional; Aplikasi Praktikal LSB dan Potensi Perfo

Pembalakan PHP: Amalan Terbaik untuk Analisis Log PHP Pembalakan PHP: Amalan Terbaik untuk Analisis Log PHP Mar 10, 2025 pm 02:32 PM

Pembalakan PHP adalah penting untuk memantau dan menyahpepijat aplikasi web, serta menangkap peristiwa kritikal, kesilapan, dan tingkah laku runtime. Ia memberikan pandangan yang berharga dalam prestasi sistem, membantu mengenal pasti isu -isu, dan menyokong penyelesaian masalah yang lebih cepat

Cara mendaftar dan menggunakan penyedia perkhidmatan Laravel Cara mendaftar dan menggunakan penyedia perkhidmatan Laravel Mar 07, 2025 am 01:18 AM

Bekas perkhidmatan dan penyedia perkhidmatan Laravel adalah asas kepada seni bina. Artikel ini meneroka bekas perkhidmatan, butiran pembekal perkhidmatan, pendaftaran, dan menunjukkan penggunaan praktikal dengan contoh. Kita akan mulakan dengan ove

Menyesuaikan/Memperluas Rangka Kerja: Cara Menambah Fungsi Custom. Menyesuaikan/Memperluas Rangka Kerja: Cara Menambah Fungsi Custom. Mar 28, 2025 pm 05:12 PM

Artikel ini membincangkan menambah fungsi khusus kepada kerangka kerja, memberi tumpuan kepada pemahaman seni bina, mengenal pasti titik lanjutan, dan amalan terbaik untuk integrasi dan debugging.

See all articles