백엔드 개발 PHP 튜토리얼 透过 PHP 生成 一维码

透过 PHP 生成 一维码

Jun 13, 2016 pm 01:25 PM
code height lt width

通过 PHP 生成 一维码
此代码来自  http://www.nixiaofeng.com/110.html

<?php
$code = $_GET['code'];
if ($code != "") {
    if (!is_numeric($code)) die('输入的不是数字');
    if (strlen($code) < 12 || strlen($code) > 13) die('条码长度不正确');
    if (strlen($code) == 12) {
        // 计算校验位
        $lsum = 0;
        $rsum = 0;
        for($i=1; $i<=strlen($code); $i++) {
            if($i % 2) {
                $lsum += (int)$code[$i-1];
            }else{
                $rsum += (int)$code[$i-1];
            }
        }
        $tsum = $lsum + $rsum * 3;
        $chkdig = 10 - ($tsum % 10);
        if ($chkdig == 10) $chkdig = 0;
        $code .= $chkdig;
    }

    // 定义起始付
    $start = '101';
    // 定义中止符
    $end = '101';
    // 定义中间分隔符
    $center = '01010';
    // 定义左资料码
    $Guide = array(0=>'AAAAAA','AABABB','AABBAB','AABBBA','ABAABB','ABBAAB','ABBBAA','ABABAB','ABABBA','ABBABA');

    // 定义左侧码,分为“A”、“B”两种
    $Lencode = array("A" => array('0001101','0011001','0010011','0111101','0100011','0110001','0101111','0111011','0110111','0001011'),
    "B" => array('0100111','0110011','0011011','0100001','0011101','0111001','0000101','0010001','0001001','0010111'));
    // 定义右侧码,统一为“C”编码
    $Rencode = array('1110010','1100110','1101100','1000010','1011100','1001110','1010000','1000100','1001000','1110100');


     
    // 编码起始符
    $barcode = $start;

    // 编码左资料位
    for($i=1; $i<=6; $i++) {
        $barcode .= $Lencode[$Guide[$code[0]][($i-1)]][$code[$i]];
    }
     
    // 编码中间分隔符
    $barcode .= $center;
     
    // 编码右资料位
    for($i=7; $i<13; $i++) {
        $barcode .= $Rencode[$code[($i)]];
    }
     
    // 编码中止符
    $barcode .= $end;

    // 定义每个条码单元的宽度和高度,单位是像素
    $width = 2;
    $height = 40;
     
    // 定义起始符、中止符、中间分隔符的高度增量
    $increment = 10;
     
    // 创建方形(×95是因为整个条码共95个单元,+60和+30是给条码图片周围留空白边框)
    $img = ImageCreate($width*95+60,$height+30);  // 目前这个方形是透明的
     
    // “1”的颜色(黑)与“0”的颜色(白)
    $fg = ImageColorAllocate($img, 0, 0, 0);
    $bg = ImageColorAllocate($img, 255, 255, 255);
     
    // 以“0”的颜色(白色),填充整个方形
    ImageFilledRectangle($img, 0, 0, $width*95+60, $height+30, $bg);
     
    // 循环编码后的每一个单元,输出条码图形
    for ($x=0; $x<strlen($barcode); $x++) {
        // ($x<4) 为起始符,($x>=92)为中止符,($x>=45 && $x<50)为中间分隔符
        // 这3个需要将高度增加
        if (($x<4) || ($x>=45 && $x<50) || ($x>=92)) {
            $increment = 10;
        } else {
            $increment = 0;
        }
        // 当编码值为“1”时,输出黑色;当编码值为“0”时,输出白色
        if ($barcode[$x] == '1') {
            $color = $fg;
        } else {
            $color = $bg;
        }
        ImageFilledRectangle($img, ($x*$width)+30,5,($x+1)*$width+29,$height+$increment,$color);
    }

    ImageString($img, 5, 20, $height+5, $code[0], $fg);
    for ($x=0; $x<6; $x++) {
        // 左侧识别码
        ImageString($img, 5, $width*(8+$x*6)+30, $height+5, $code[$x+1], $fg);
        // 右侧识别码
        ImageString($img, 5, $width*(53+$x*6)+30, $height+5, $code[$x+7], $fg);
    }

    header("Content-Type: image/jpeg");
    ImageJPEG($img, "", 100);
}
?>

<form action="?">
输入EAN-13条形码(如果输入12位长度,将自动计算校验位)<input type="text" name="code"> <input type="submit" value="生成条码图片">
</form>
로그인 후 복사


 透过 PHP 生成 一维码

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

html의 너비는 무엇을 의미합니까? html의 너비는 무엇을 의미합니까? Jun 03, 2021 pm 02:15 PM

HTML5에서 너비는 너비를 의미합니다. 너비 속성은 콘텐츠 영역 외부에 내부 여백, 테두리 및 외부 여백을 추가할 수 있습니다. 요소.

Visual Studio Code에서 Unity 프로젝트를 편집하면 이제 시작할 준비가 되었습니다. Visual Studio Code에서 Unity 프로젝트를 편집하면 이제 시작할 준비가 되었습니다. Aug 08, 2023 am 10:21 AM

Microsoft는 Visual Studio Code용 Unity 확장의 미리 ​​보기 버전을 출시했습니다. 이 새로운 Unity 확장을 사용하면 Unity 게임을 작성하고 디버그할 수 있습니다. 이 새로운 Unity 확장은 Visual Studio 및 Unity용 Visual Studio Tools에서 이미 사용할 수 있는 몇 가지 인기 있는 기능을 제공하여 Visual Studio Code의 C#을 Unity 개발에 더 적합하게 만듭니다. 현재 VSCode용 Unity 확장은 다음을 제공합니다. Unity 편집기 및 Unity 플레이어 디버깅을 위한 Unity 디버거. Unity 관련 C# 분석기 및 리팩토링. 유니

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

CSS 차원 속성에 대한 자세한 설명: 높이 및 너비 CSS 차원 속성에 대한 자세한 설명: 높이 및 너비 Oct 21, 2023 pm 12:42 PM

CSS 차원 속성에 대한 자세한 설명: 높이 및 너비 프런트 엔드 개발에서 CSS는 강력한 스타일 정의 언어입니다. 그 중 높이와 너비는 요소의 높이와 너비를 정의하는 데 사용되는 가장 기본적인 두 가지 치수 속성입니다. 이 기사에서는 이 두 가지 속성을 자세히 분석하고 구체적인 코드 예제를 제공합니다. 1. 높이 속성 높이 속성은 요소의 높이를 정의하는 데 사용됩니다. 픽셀, 백분율 또는

Microsoft는 Copilot을 통해 Windows 11 23H2 빌드를 릴리스 미리 보기 채널에 출시하고 있습니다. Microsoft는 Copilot을 통해 Windows 11 23H2 빌드를 릴리스 미리 보기 채널에 출시하고 있습니다. Sep 28, 2023 pm 07:17 PM

모두가 오늘의 Windows 1123H2 릴리스를 기대하고 있습니다. 실제로 마이크로소프트는 공식 출시 단계 전 가장 가까운 채널인 릴리즈 프리뷰에 대한 업데이트를 막 출시했다. 빌드 22631로 알려진 마이크로소프트는 지난 몇 달 동안 다른 내부 채널에서 테스트를 거친 새로운 브랜드의 채팅 앱, 전화 링크, 플레이 투게더 위젯을 출시할 예정이라고 밝혔습니다. "이 새로운 업데이트는 Windows 11 버전 22H2와 동일한 서비스 분기 및 코드 기반을 가지며 Windows의 Copilot(미리 보기)을 포함하여 새로 발표된 모든 기능과 함께 누적될 것입니다."라고 Microsoft는 약속합니다. 레드몬드 관계자 추가

CSS에서 너비 값을 표현하는 방법은 무엇입니까? CSS에서 너비 값을 표현하는 방법은 무엇입니까? Nov 13, 2023 pm 05:47 PM

방법에는 픽셀 값, 백분율, em 단위, rem 단위, vw/vh 단위, 자동, fit-content, min-content, max-content가 포함됩니다. 자세한 소개: 1. 픽셀 값(px): 픽셀 값은 고정되어 있으며 화면 해상도가 어떻게 변하더라도 너비는 변경되지 않습니다. 예: 너비: 300px; 2. 백분율(%): 백분율 너비는 상위 요소의 너비를 기준으로 합니다. 예: 너비: 50%, em 단위 등.

HTML 및 코드 : 용어를 자세히 살펴 봅니다 HTML 및 코드 : 용어를 자세히 살펴 봅니다 Apr 10, 2025 am 09:28 AM

"Code"는 "Code"BroadlyIncludeLugageslikeJavaScriptandPyThonforFunctureS (htMlisAspecificTypeofCodeFocudecturecturingWebContent)

请教怎么修改url某一参数的参数值呢?是要拆开了再拼回去吗 请教怎么修改url某一参数的参数值呢?是要拆开了再拼回去吗 Jun 13, 2016 am 10:24 AM

请问如何修改url某一参数的参数值呢?是要拆开了再拼回去吗?那么请问如何修改url某一参数的参数值呢?是要拆开了再拼回去吗?http://127.0.0.1/myo/newuser.php?mod=search&type=fastone比如现在我要修改mod=new要怎么做呢?------解决方案--------------------发送了请求

See all articles