วิธีสร้าง QRCODE ด้วย PHP ตั้งแต่เริ่มต้น

PHP Knowledge เป็น บอร์ดรวามความรู้ php เน้นบทความ แนวทางการเขียนโปรแกรม บันทึกกันลืม เพื่อให้สมาชิกได้เขียนความรู้ที่ตัวเองมีให้สมาชิกท่านอื่นๆ ได้ เข้ามาอ่าน และ ไว้อ่านเองกันลืมด้วย

Moderator: mindphp, ผู้ดูแลกระดาน

Sakana
PHP Super Member
PHP Super Member
โพสต์: 378
ลงทะเบียนเมื่อ: 16/06/2025 9:38 am

วิธีสร้าง QRCODE ด้วย PHP ตั้งแต่เริ่มต้น

โพสต์ที่ยังไม่ได้อ่าน โดย Sakana »

การสร้าง QR Code ด้วย PHP เป็นวิธีที่ได้รับความนิยมอย่างมาก เพราะ PHP ทำงานบนฝั่งเซิร์ฟเวอร์ (server-side) ทำให้สามารถสร้างไฟล์รูปภาพ QR Code และบันทึกลงในเซิร์ฟเวอร์ได้โดยตรง ซึ่งมีข้อดีหลายประการ เช่น ความปลอดภัยของข้อมูล (ไม่ต้องเปิดเผยข้อมูลที่ใช้สร้าง QR Code ให้ฝั่งผู้ใช้เห็น) และ ประสิทธิภาพในการจัดการไฟล์ เหมาะสำหรับแอปพลิเคชันที่ต้องสร้าง QR Code จำนวนมาก เช่น ระบบจัดการคลังสินค้า หรือระบบบัตรเข้างาน

ขั้นตอนที่ 1: ติดตั้ง XAMPP
ก่อนอื่นคุณต้องมีเว็บเซิร์ฟเวอร์ที่รองรับ PHP ในที่นี้เราจะใช้ XAMPP ซึ่งเป็นโปรแกรมสำเร็จรูปที่ติดตั้งได้ง่าย
- ติดตั้ง XAMPP: หากยังไม่มี ให้ดาวน์โหลดและติดตั้ง XAMPP จากเว็บไซต์ทางการ
- เปิด Apache: เปิด XAMPP Control Panel แล้วกดปุ่ม "Start" ที่โมดูล Apache เพื่อเปิดใช้งานเว็บเซิร์ฟเวอร์

ขั้นตอนที่ 2: ดาวน์โหลดและตั้งค่าไลบรารี "PHP QR Code"
- ดาวน์โหลดไลบรารี: ไปที่ https://sourceforge.net/projects/phpqrcode/ และคลิก "Download"
- แตกไฟล์: แตกไฟล์ ZIP ที่ดาวน์โหลดมา คุณจะพบโฟลเดอร์ชื่อ phpqrcode
- ย้ายโฟลเดอร์: นำโฟลเดอร์ phpqrcode ไปวางไว้ในโฟลเดอร์ htdocs ของ XAMPP เช่น C:\xampp\htdocs\

ขั้นตอนที่ 3: เปิดใช้งาน GD Extension ใน PHP
- เปิดไฟล์ php.ini: ใน XAMPP Control Panel ให้คลิกปุ่ม "Config" ที่แถว Apache แล้วเลือก "PHP (php.ini)"
- ค้นหาและแก้ไข: ค้นหาบรรทัดที่มีข้อความ ;extension=gd
- ลบเครื่องหมาย semicolon (;) ที่อยู่หน้าบรรทัดนั้นออก
- บันทึกและ Restart Apache: บันทึกไฟล์ php.ini และกดปุ่ม "Stop" แล้ว "Start" ที่โมดูล Apache อีกครั้ง เพื่อให้การตั้งค่ามีผล
PHP Knowledge-1.png
PHP Knowledge-1.png (3.4 KiB) Viewed 66 times
ขั้นตอนที่ 4: เขียนโค้ด PHP เพื่อสร้าง QR Code
- สร้างโฟลเดอร์โปรเจกต์: ในโฟลเดอร์ htdocs ให้สร้างโฟลเดอร์ใหม่ เช่น my_qr_project
- สร้างไฟล์ generate.php: สร้างไฟล์ชื่อ generate.php ในโฟลเดอร์ my_qr_project แล้วคัดลอกโค้ดด้านล่างนี้ไปวาง
generate.php

โค้ด: เลือกทั้งหมด

<?php
// เพื่อสร้าง QR Code
include '../phpqrcode/qrlib.php';
// ตรวจสอบว่ามีข้อมูลส่งมาจากฟอร์มหรือไม่
if (isset($_POST['data_to_encode'])) {
    // ดึงข้อมูลที่ส่งมาจากฟอร์ม
    $data = $_POST['data_to_encode'];

    // กำหนดขนาดและระดับการแก้ไขข้อผิดพลาด
    $size = 10; // ขนาด QR CODE
    $ecc = 'H';  // ระดับการแก้ไขข้อผิดพลาด (L, M, Q, H) - H คือระดับสูงสุด
    $margin = 2; // ขนาดกรอบ QR Code

    // กำหนดชื่อไฟล์ที่จะบันทึก
    $filename = 'qr_images/dynamic_qrcode.png';

    // ตรวจสอบและสร้างโฟลเดอร์ถ้ายังไม่มี
    if (!file_exists('qr_images')) {
        mkdir('qr_images', 0777, true);
    }

    // สร้าง QR Code และบันทึกเป็นไฟล์
    QRcode::png($data, $filename, $ecc, $size, $margin);

    // แสดงผล QR Code ที่สร้างขึ้น
    echo "<h1>QR Code ถูกสร้างเรียบร้อยแล้ว!</h1>";
    echo "<img src='" . $filename . "' alt='Generated QR Code'>";
    echo "<p>ข้อมูลที่ใช้สร้าง: <strong>" . htmlspecialchars($data) . "</strong></p>";
    echo "<a href='index.html'>สร้างใหม่</a>";
} else {
    // ถ้าไม่มีข้อมูล ให้ redirect กลับไปที่หน้าฟอร์ม
    header('Location: form.php');
    exit;
}
?>
ผลลัพธ์
PHP Knowledge-1.png
PHP Knowledge-1.png (13.38 KiB) Viewed 66 times
PHP Knowledge-2.png
PHP Knowledge-2.png (16.32 KiB) Viewed 66 times
สรุป
การสร้าง QR Code ด้วย PHP เป็นวิธีที่ง่ายและมีประสิทธิภาพ โดยเฉพาะอย่างยิ่งเมื่อคุณต้องการระบบที่สร้าง QR Code และบันทึกลงบนเซิร์ฟเวอร์ การใช้ไลบรารีอย่าง PHP QR Code ช่วยให้คุณไม่ต้องเขียนโค้ดซับซ้อนเอง เพียงแค่เรียกใช้ฟังก์ชันไม่กี่บรรทัดก็สามารถสร้าง QR Code ได้อย่างมืออาชีพ
คุณสามารถต่อยอดจากโค้ดนี้ได้อีกมากมาย เช่น การบันทึก QR Code ลงในฐานข้อมูล, หรือแม้แต่การเพิ่มโลโก้ลงไปตรงกลาง QR Code ที่ถูกตั้งค่าไว้ในโค้ดแล้ว ทำให้โค้ดมีความยืดหยุ่นและสามารถนำไปประยุกต์ใช้ได้กับหลากหลายโปรเจกต์ของคุณ

อ้างอิง
- https://www.mindphp.com/คู่มือ/73-คืออะ ... code.html
- https://www.mindphp.com/developer/27-พื ... ออะไร.html
- viewtopic.php?t=70531
- viewtopic.php?t=108889
- viewtopic.php?t=108549-
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 1