ฉันกำลังพยายามสร้างรหัส QR บนเว็บไซต์ของฉัน สิ่งที่พวกเขาต้องทำคือมี URL อยู่ในนั้นซึ่งตัวแปรในไซต์ของฉันจะให้มา วิธีที่ง่ายที่สุดในการทำเช่นนี้คืออะไร?
ฉันกำลังพยายามสร้างรหัส QR บนเว็บไซต์ของฉัน สิ่งที่พวกเขาต้องทำคือมี URL อยู่ในนั้นซึ่งตัวแปรในไซต์ของฉันจะให้มา วิธีที่ง่ายที่สุดในการทำเช่นนี้คืออะไร?
คำตอบ:
นอกจากนี้ยังมีห้องสมุดรหัส QR ที่โพสต์โดย@abaumg Google ยังมีไฟล์รหัส QR API รหัส QR API ขอบคุณหลาย@Toukakoukanสำหรับการปรับปรุงการเชื่อมโยง
ในการใช้สิ่งนี้โดยพื้นฐาน:
https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=http%3A%2F%2Fwww.google.com%2F&choe=UTF-8
300x300
คือขนาดของภาพ QR ที่คุณต้องการสร้างchl
เป็นสตริงเข้ารหัส URL ที่คุณต้องการเปลี่ยนเป็นรหัส QR และchoe
เป็น (อุปกรณ์เสริม) การเข้ารหัสลิงก์ด้านบนให้รายละเอียดมากขึ้น แต่หากต้องการใช้เพียงแค่src
ให้รูปภาพชี้ไปที่ค่าที่ปรับแต่งดังนี้:
<img src="https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=http%3A%2F%2Fwww.google.com%2F&choe=UTF-8" title="Link to Google.com" />
การสาธิต:
วิธีที่ง่ายที่สุดในการสร้างรหัส QR กับ PHP เป็นห้องสมุด phpqrcode
ห้องสมุด phpqrcodeเป็นจริงอย่างรวดเร็วการกำหนดค่าและเอกสาร API เป็นเรื่องง่ายที่จะเข้าใจ
นอกจากคำตอบของ abaumgแล้วฉันได้แนบ 2 ตัวอย่างPHP
จากhttp://phpqrcode.sourceforge.net/examples/index.php
1. ตัวเข้ารหัสรหัส QR
ก่อนอื่นให้รวมไลบรารีจากเส้นทางในพื้นที่ของคุณ
include('../qrlib.php');
จากนั้นส่งออกภาพโดยตรงตามที่สตรีม PNG ทำเช่น:
QRcode::png('your texte here...');
เพื่อบันทึกผลลัพธ์ในเครื่องเป็นภาพ PNG:
$tempDir = EXAMPLE_TMP_SERVERPATH;
$codeContents = 'your message here...';
$fileName = 'qrcode_name.png';
$pngAbsoluteFilePath = $tempDir.$fileName;
$urlRelativeFilePath = EXAMPLE_TMP_URLRELPATH.$fileName;
QRcode::png($codeContents, $pngAbsoluteFilePath);
2. ตัวถอดรหัสรหัส QR
ดูตัวถอดรหัสzxing ด้วย :
http://zxing.org/w/decode.jspx
มีประโยชน์มากในการตรวจสอบผลลัพธ์
3. รายการรูปแบบข้อมูล
รายการรูปแบบข้อมูลที่คุณสามารถใช้ในรหัส QR ของคุณตามประเภทข้อมูล:
http://
)ห้องสมุด endroid / QRCodeง่ายต่อการใช้งานบำรุงรักษาอย่างดีและสามารถนำมาติดตั้งโดยใช้นักแต่งเพลง นอกจากนี้ยังมีบันเดิลสำหรับใช้กับ Symfony โดยตรง
การติดตั้ง:
$ composer require endroid/qrcode
การใช้งาน:
<?php
use Endroid\QrCode\QrCode;
$qrCode = new QrCode();
$qrCode
->setText('Life is too short to be generating QR codes')
->setSize(300)
->setPadding(10)
->setErrorCorrection('high')
->setForegroundColor(array('r' => 0, 'g' => 0, 'b' => 0, 'a' => 0))
->setBackgroundColor(array('r' => 255, 'g' => 255, 'b' => 255, 'a' => 0))
->setLabel('Scan the code')
->setLabelFontSize(16)
->setImageType(QrCode::IMAGE_TYPE_PNG)
;
// now we can directly output the qrcode
header('Content-Type: '.$qrCode->getContentType());
$qrCode->render();
// or create a response object
$response = new Response($qrCode->get(), 200, array('Content-Type' => $qrCode->getContentType()));
setText()
ถ้าฉันมีหลายข้อมูล ตัวอย่างเช่นผมมี$a = 1
, $b = 2
, $c = 3
? ฉันต้องการใช้มากกว่าหนึ่งประโยคหรือสตริง ฉันจะทำเช่นนั้นได้อย่างไร?
setText
วิธีนี้ยอมรับเพียงพารามิเตอร์เดียวฉันจึงเดาว่าคุณควรเชื่อมตัวแปรของคุณเข้าด้วยกันก่อนที่จะส่งผ่าน แต่ฉันไม่แน่ใจว่าฉันเข้าใจปัญหาของคุณอย่างถูกต้องบางทีคุณควรเปิดปัญหาใน repo ของห้องสมุด
qrcode-generatorบน Github สคริปต์ที่เรียบง่ายที่สุดและใช้งานได้อย่างมีเสน่ห์
ข้อดี:
ฉันใช้ google qrcode api มาระยะหนึ่งแล้ว แต่ฉันไม่ค่อยชอบแบบนี้เพราะมันทำให้ฉันต้องอยู่บนอินเทอร์เน็ตเพื่อเข้าถึงรูปภาพที่สร้างขึ้น
ฉันทำการวิจัยเกี่ยวกับ comand-line เล็กน้อยและพบว่า linux มีเครื่องมือบรรทัดคำสั่งqrencode
สำหรับสร้าง qr-code
ฉันเขียนบทนี้เล็กน้อย และส่วนที่ดีก็คือภาพที่สร้างขึ้นมีขนาดน้อยกว่า 1 KB ข้อมูลที่ให้มาเป็นเพียง url
$url = ($_SERVER['HTTPS'] ? "https://" : "http://").$_SERVER['HTTP_HOST'].'/profile.php?id='.$_GET['pid'];
$img = shell_exec('qrencode --output=- -m=1 '.escapeshellarg($url));
$imgData = "data:image/png;base64,".base64_encode($img);
จากนั้นใน html ฉันโหลดภาพ:
<img class="emrQRCode" src="<?=$imgData ?>" />
คุณต้องติดตั้ง [แอปถ่ายภาพส่วนใหญ่บน linux จะติดตั้งไว้ใต้ฝากระโปรงโดยที่คุณไม่รู้ตัว
ฉันรู้ว่าคำถามคือวิธีสร้างรหัส QR โดยใช้ PHP แต่สำหรับคนอื่น ๆ ที่กำลังมองหาวิธีสร้างรหัสสำหรับเว็บไซต์ที่ทำสิ่งนี้ในจาวาสคริปต์ล้วนเป็นวิธีที่ดี jQuery-QRCodeปลั๊กอิน jQuery ไม่ได้ดี