이 글은 PHP가 어떻게 QR코드의 생성 및 식별(코드)을 구현할 수 있는지에 관한 것으로, 참고가치가 있으니 꼭 참고하시어 도움이 되시기 바랍니다
QR코드의 분류
선형적층 QR코드
매트릭스 QR코드
QR코드의 장단점
장점
정보 용량이 크다
부호화의 범위가 넓다
잘못을 용납하는 능력이 강하다.
복호 신뢰성이 높다
암호화를 도입할 수 있다
원가가 낮아 만들기 쉽다
결점
QR코드, 모바일 바이러스 피싱 사이트 됐다전파의 새로운 경로
정보가 새다.
현재 유행하는 3대 국제 표준
PDF417: 중국어 지원 안 함
DM:특허 미공개,지급특허비용
QR코드:특허공개중국어 지원
QR코드 오류 정정 기능
레벨 L: 약 7%의 데이터 오류 수정 가능부호어
M급 : 약 15%의 오차를 보정할 수 있는 수코드 워드에 의하면
Q급: 약 25%정정정 가능한 수코드 워드에 의하면
H클래스: 약 30%의 오차를 보정할 수 있는 수코드 워드에 의하면
전제조건
GD 라이브러리
1.PHP 생성QR CODE
홈페이지: http://phpqrcode.sourceforge.net/
원본 다운로드: https:///github.com/endroid/qr-code
디렉토리 구조
1,qrcode_create.php
ps:일반 QR코드 생성
<?php
include_once "./qrcode/phpqrcode.php";/**
* 매개 변수: p1: QR 코드에 포함된 내용 p2: 출력된 파일 이름 p3: 오류 허용 수준 p4: 크기 p5: 외부 여백 margin p6: 경로 저장
* 브라우저에 직접 QR코드 생성 (내용은 abc)
*/QRcode::png("abc");
QRcode::png("ABC",false,QR_ECLEVEL_L,10,5,false);/**
* 로컬로 파일 생성
*매개 변수: p1: QR 코드에 포함된 내용 p2: 출력된 파일 이름 p3: 오류 허용 수준 p4: 크기 p5: 외부 여백 margin p6: 저장 및 인쇄 여부 (false 직접 생성 true 생성 및 인쇄)
* PS:$saveandprint소스코드의 p6 인수가 수정되었다
*/QRcode::png("ABC","ABC.jpg",QR_ECLEVEL_H,10,2,false);
2,qrcode_logo.php
ps:Logo가 있는 QR코드
<?php
/**
* Created by PhpStorm.
* User: user
* Date: 2018/8/16
* Time: 10:43
*/include "./qrcode/phpqrcode.php";$txt = "테스트 내용";
$picPathAndName = "./pic/ABC.jpg";//QR코드 저장 경로와 이름
$level = 'L';$size = 5;$is_logo = 1;//Logo 0 포함 여부 No 1 Yes
$margin = 2;//여백
$saveAndPrint = true;//저장 여부, 저장 시,$picPathAndNametrue로 설정 // QR코드 이미지 생성
QRcode::png($txt, $picPathAndName, $level, $size, $margin,$saveAndPrint);if($is_logo == 1){
$QR = $picPathAndName; //생성된 원시 QR 그림
$Logo = './pic/logo.png';
$Logo_re = './pic/test_logo.png';
$QR = imagecreatefromstring(file_get_contents($QR));
$Logo = imagecreatefromstring(file_get_contents($Logo));
$QR_width = imagesx($QR); //QR코드 폭
$QR_height = imagesy($QR); //二QR코드 이미지 높이
$logo_width = imagesx($Logo); //로고 이미지 너비
$logo_height = imagesy($Logo); //로고 이미지 높이
$logo_qr_width = $QR_width / 5;
$scale = $logo_width / $logo_qr_width;
$logo_qr_height = $logo_height / $scale;
$from_width = ($QR_width - $logo_qr_width) / 2;
imagecopyresampled($QR, $Logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);
//그림을 출력하다
imagepng($QR, $Logo_re);
}
3,qrcode_vcard.php (전자서명 생성)
vCard 형식: https://zh.wikipedia.org/wiki/VCard
<?php/**
* Created by PhpStorm.
* User: user
* Date: 2018/8/15
* Time: 23:00
*/require_once "./qrcode/phpqrcode.php";/**
* 전자 서명 생성
* PS;위챗으로 QR코드 스캔하기
*/$content = 'BEGIN:VCARD' . "\n";//시작 표지
$content .= 'VERSION:2.1' . "\n";//현재 버전
$content .= 'N:주' . "\n";//v$content .= 'FN:용감하다' . "\n";//이름
$content .= 'ORG:장쑤동대집적회로시스템유한공사' . "\n";//회사명
$content .= 'TITLE:PHP R&D 프로그래머' . "\n";//직위
$content .= 'TEL;WORK;VOICE:0523-83623173' . "\n";//업무 전화
$content .= 'ADR;WORK:;;고신구 성화로#2;난징시;장쑤성;225762;중국' . "\n";//직장 주소
$content .= 'ADR;HOME:;;시모테 진 왕왕촌 178호;싱화 시;장쑤성;225762;중국' . "\n";//집 주소(거리, 지역시, 도, 우편번호, 국가)
$content .= 'TEL;TYPE:18000001111' . "\n";//휴대 전화
$content .= 'EMAIL:123456@qq.com' . "\n";//우편함
$content .= 'URL:www.baidu.com' . "\n";//개인 홈페이지
$content .= 'END:VCARD' . "\n";//종료 플래그
QRcode::png($content);
<!DOCTYPE html><html lang="en"><head>
<meta charset="UTF-8">
<title>JqueryQR코드 생성</title>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="./jquery-qrcode/jquery.qrcode.min.js"></script></head><body>
<p id="qrcode"></p><script>
//$('#qrcode').qrcode("this plugin is great");
$('#qrcode').qrcode({width: 64,height: 64,text: "jason"});</script></body></html>
3. PHP인식 QR코드
1. 방법 1
환경수요, 설치는 아래와 같이 확장됩니다.
- 이미지마기ck
- zbar
- php-zbarcode
2, 방법 2
PHP인식 QR코드(필요없음)설치확장), 기본 QR코드 L 포함 가능ogo의 QR코드는 내결함 수준을 설정해야 한다.페이지를 높이 치하하면 된다
qrReader 클래스:https://github.com/baagee/php_QrReader
<?phpinclude_once('./qrReader/lib/QrReader.php');
$qrcode = new QrReader('./test_logo.png'); //그림 경로
$text = $qrcode->text(); //인식된 텍스트를 되돌려줍니다
echo $text;
이상이 PHP가 QR코드를 어떻게 생성하고 인식하는지 상세한 내용입니다
'개발 꿀팁 > PHP' 카테고리의 다른 글
php의 max,min 함수 상세 내역 (0) | 2022.07.23 |
---|---|
PHP에서 가변 변수와 php 가변 함수는 도대체 무슨 소용이 있습니까? (0) | 2022.07.23 |
php ob_start()를 이용하여 출력과 선택적 출력을 지웁니다 (0) | 2022.07.22 |
php 프로그램이 node.js 프로그램과 go 프로그램을 수신합니다 (0) | 2022.07.22 |
php의 정확도 계산 문제(bcadd와 bcsub) (0) | 2022.07.22 |