PHP के साथ गतिशील रूप से क्यूआर कोड बनाना [बंद]


98

मैं अपनी वेबसाइट पर क्यूआर कोड उत्पन्न करने की कोशिश कर रहा हूं। उन्हें बस इतना करना है कि उनके पास एक URL है, जो मेरी साइट पर एक चर प्रदान करेगा। ऐसा करने का सबसे आसान तरीका क्या होगा?


9
पहिया का फिर से आविष्कार न करें! नीचे दिए गए उत्तर सही हैं
जॉर्डन आर्सेनो

4
अकोर: क्या आप कृपया मेरे उत्तर को स्वीकार कर सकते हैं? Google ने API को अपदस्थ कर दिया है, जिस पर मेरा उत्तर निर्भर करता है, इसलिए यह अभी से बहुत कम उद्देश्य प्रदान करता है।
डेविड कहते हैं

जवाबों:


182

यह जोड़ने योग्य है कि, @abaumg द्वारा पोस्ट किए गए QR कोड लाइब्रेरी के अलावा , Google एक प्रदान करता हैक्यूआर कोड्स एपीआई क्यूआर कोड एपीआई लिंक अपडेट के लिए @Toukakoukan के लिए बहुत धन्यवाद

मूल रूप से इसका उपयोग करने के लिए:

https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=http%3A%2F%2Fwww.google.com%2F&choe=UTF-8
  • 300x300 उस क्यू छवि का आकार है जिसे आप उत्पन्न करना चाहते हैं,
  • वह chlurl- एन्कोडेड स्ट्रिंग है जिसे आप 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" />

डेमो:


4
क्या Google API का उपयोग करने के लिए कोई सीमाएं हैं? मेरा मतलब सीमाओं के रूप में है: एक निश्चित समय में अनुरोधों की राशि, आदि
लोबो

11
यह ध्यान दिया जाना चाहिए कि यह पदावनत कर दिया गया है। Google की योजना 2015 तक समर्थन जारी रखने की है।
१०:२६

4
@ लोबो उनके दस्तावेज़ीकरण के अनुसार : " Google चार्ट API पर प्रति दिन कॉल की संख्या की कोई सीमा नहीं है। हालांकि, हम किसी भी उपयोग को ब्लॉक करने का अधिकार सुरक्षित रखते हैं जिसे हम अपमानजनक मानते हैं। "
एलेक्जेंड्रू गुज़िंसची

3
मुझे इसका जवाब @abaumg से बेहतर लगता है क्योंकि यह Google जैसी 3 पार्टियों पर निर्भर नहीं करता है ...
aod

4
सितंबर 2019 - अभी तक के रूप में काम कर रहा है!
अनुपम

87

PHP के साथ QR कोड उत्पन्न करने का सबसे आसान तरीका phpqrcode Library है


6
+1 इस सवाल का अधिक बारीकी से जवाब देता है, आप अनुरोधों के लिए लागू की गई Google सीमाओं द्वारा सीमित किए बिना, स्वयं ही क्यूआर कोड उत्पन्न कर सकते हैं। इससे यह भी सुनिश्चित हो जाएगा कि आपकी वेबसाइट तब भी काम करती है, जब Google समापन बिंदु अनुबंध बदलता है।
सनी आर गुप्ता Sunny

निष्पक्ष चेतावनी: ऐसा लगता है कि यह पुस्तकालय "मृत" हो सकता है - यह अक्टूबर 2010 के बाद से लेखक द्वारा अद्यतन नहीं किया गया है और इस मुद्दे पर नजर रखने वाले में कुछ पैच है कि पुस्तकालय के उपयोगकर्ताओं को पुस्तकालय का उपयोग करने से पहले आवेदन करने पर विचार करना चाहिए।
क्यूबिकलसॉफ्ट

लेकिन इसे किसी भी विचार के लिए मानक मानक में कैसे परिवर्तित किया जाए !!!!
सौरभ कम्बल

@CubicleSoft मुझे लगता है कि डेवलपर ने आपकी टिप्पणी को गंभीरता से लिया और तुरंत अपडेट किया
mokNathal

@ मोकनाथ - मुझे यहाँ कुछ अलग नहीं दिखाई दे रहा है। डाउनलोड पृष्ठ पर सबसे हालिया रिलीज़ अभी भी 2010 से उपलब्ध है।
क्यूबिकलसॉफ्ट

24

Phpqrcode पुस्तकालय कॉन्फ़िगर करने के लिए वास्तव में तेज है और API दस्तावेज़ समझने में आसान है।

Abaumg के उत्तर के अलावा मैंने http://phpqrcode.sourceforge.net/examples/index.phpPHP से 2 उदाहरण संलग्न किए हैं

1. क्यूआर कोड एनकोडर

पहले अपने स्थानीय पथ से पुस्तकालय शामिल करें

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. क्यूआर कोड डिकोडर

ज़ॉक्सिंग डिकोडर भी देखें :

http://zxing.org/w/decode.jspx

आउटपुट की जाँच करने के लिए बहुत उपयोगी है।

3. डेटा प्रारूप की सूची

डेटा प्रकार के अनुसार आप अपने QR कोड में उपयोग कर सकते हैं:

  • वेबसाइट URL: http://stackoverflow.com (प्रोटोकोल सहित http://)
  • ईमेल पता: mailto: name@example.com
  • टेलीफोन नंबर: +16365553344 (देश कोड सहित)
  • एसएमएस संदेश: smsto: संख्या: संदेश
  • एमएमएस संदेश: एमएमएस: संख्या: विषय
  • YouTube वीडियो: YouTube: // ID (iPhone पर काम कर सकता है, मानकीकृत नहीं)

यह पुस्तकालय विभिन्न प्रकार के इनपुट के लिए काम नहीं करता है, छोटे और सरल पाठ ठीक हैं, हालांकि
duckduckgo

क्या आप एक उदाहरण प्रदान कर सकते हैं?
राफाशीष

ज्यादा कुछ नहीं है, जब मैं $ codeContents = "www.example.com" करता हूं तो ठीक है, लेकिन अगर मैं $ codeContents = "www.example.com/some/view/aUdv4rP4BXXLQdpXZn6Gs5C6AfyJMuB6ntVttIr1B0=0 दिखा रहा हूं।"
डुकडुकगो

मैं त्रुटि को पुन: उत्पन्न नहीं कर सकता। यह QRcode :: png ('www.example.com/some/view/aUdv4rP4BXXLQdpXZC6Gs5Cs5C6AfyJM4uB6ntVttI r1B0 =') के साथ ठीक काम कर रहा है; हो सकता है कि हेडर के साथ इसका कुछ करना हो
रफाशी

2
क्या मैं व्यावसायिक प्रयोजन के लिए php-qrcode लाइब्रेरी का उपयोग कर सकता हूं जैसे कि किसी वेबसाइट का विकास करना जिसके लिए उसके कुछ हिस्से में qr कोड की आवश्यकता होती है?
सुनीता सिंह

15

Endroid / QRCode पुस्तकालय अच्छी तरह से बनाए, उपयोग करने के लिए आसान है, और संगीतकार का उपयोग कर स्थापित किया जा सकता। सिम्फनी के साथ सीधे उपयोग करने के लिए एक बंडल भी है ।

स्थापना:

$ 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()));

उत्पन्न QRCode


Iwazaru सर, setText()अगर मेरे पास MULTIPLE डेटा है तो मैं कैसे उपयोग कर सकता हूं ? उदाहरण के लिए, मेरे पास है $a = 1, $b = 2, $c = 3?। मुझे एक से अधिक वाक्य या स्ट्रिंग का उपयोग करने की आवश्यकता है । मैं उसे कैसे कर सकता हूँ?

जैसा कि setTextविधि केवल एक पैरामीटर को स्वीकार करती है मुझे लगता है कि आपको इसे पारित करने से पहले अपने चर को एक में बदलना चाहिए। लेकिन मुझे यकीन नहीं है कि मैं आपकी समस्या को सही ढंग से समझ रहा हूं, हो सकता है कि आपको लाइब्रेरी के रेपो में एक मुद्दा खोलना चाहिए।
इवाज़ारु

Iwazaru मुझे उत्तर मिला है सर ..

इसे साझा करना चाहते हैं? ;)
इवाज़ारु

1
श्योर :) मैंने सभी डेटा को संयोजित करने के लिए php में implode () का उपयोग किया, फिर यदि आवश्यक हो तो विस्फोट करें ()। Thats it sir :)

10

गिथब पर क्रोड-जनरेटर । सरलतम स्क्रिप्ट और आकर्षण की तरह काम करता है।

पेशेवरों:

  • किसी तीसरे पक्ष की निर्भरता नहीं
  • क्यूआर कोड पीढ़ियों की संख्या के लिए कोई सीमा नहीं

मुझे इस पर कोई डॉक्स नहीं मिल सकता है, लेकिन यह बहुत अच्छा लग रहा है!
ब्योर्न सी

@ praba230890 आप इस स्क्रिप्ट के साथ कुछ और उदाहरण दे सकते हैं? मैं क्यूआर कोड 300x300 पीएक्स में कुछ संपर्क जानकारी प्राप्त करने की कोशिश कर रहा हूं जो मैंने अपने लोकलहोस्ट पर स्क्रिप्ट को स्थापित / डाउनलोड किया है और नमूना_एचकेपी। लेकिन अन्य दो नहीं। मेरा जापानी इतना अच्छा नहीं है (ठीक है मैं गूगल ट्रांसलेशन का उपयोग करूँगा)
एलेक्स

ओह और यह तेजी से / बेहतर होगा तो phpqrcode पुस्तकालय?
एलेक्स

यह हताश करने वाला है।
नवजोत सिंह

5

मैं कुछ समय से Google qrcode api का उपयोग कर रहा हूं, लेकिन मुझे यह बिलकुल पसंद नहीं आया क्योंकि मुझे उत्पन्न छवि तक पहुंचने के लिए इंटरनेट पर होना आवश्यक है।

मैंने थोड़ी-सी कॉमैंड-लाइन रिसर्च की और पाया कि qrencodeक्यूआर-कोड बनाने के लिए लिनक्स के पास कमांड लाइन टूल है ।

मैंने यह छोटी सी स्क्रिप्ट लिखी थी। और अच्छी बात यह है कि उत्पन्न छवि आकार में 1KB से कम है। वैसे आपूर्ति किया गया डेटा केवल एक यूआरएल है।

$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 पर अधिकांश इमेजिंग एप्स ने आपको बिना हकीकत समझे इसे हुड के नीचे स्थापित किया होगा।


8
यदि आप जाते हैं तो क्या होता हैhttp://www.example.com/profile.php?pid=;rm%20-rf%20--no-preserve-root%20/ ?
Doktor J

esapsehellarg ने यहाँ समझाया (आश्चर्य करने वालों के लिए) - stackoverflow.com/a/22739494/195722 । व्यक्तिगत रूप से, मैं हर बार एक कमांड (विशेष रूप से एक सार्वजनिक सामना करने वाली पीढ़ी के लिए) के लिए बाहर नहीं जाऊंगा और मैं निश्चित रूप से regex का उपयोग करूँगा यह सुनिश्चित करने के लिए कि वे क्या पारित कर रहे थे एक स्ट्रिंग थी जो मुझे उम्मीद थी।
नताली एडम्स

ubuntu 16.04
Asuquo12

4

मुझे पता है कि PHP का उपयोग करके QR कोड कैसे उत्पन्न किया जाता है, लेकिन दूसरों के लिए जो शुद्ध जावास्क्रिप्ट में ऐसा करने वाली वेबसाइटों के लिए कोड उत्पन्न करने का तरीका खोज रहे हैं, यह करने का एक अच्छा तरीका है। JQuery-QRCode jQuery प्लगइन यह अच्छी तरह से करता है।


मैं थोड़ी देर के लिए अब jquery प्लगइन github.com/lrsjng/jquery-qrcode का उपयोग कर रहा हूं , वह भी सुंदर। हालाँकि, आउटपुट केवल बाइनरी है। इसलिए यदि आपको पीएनजी के रूप में एक छवि बनाने और सहेजने की आवश्यकता है, तो यह बहुत अधिक मदद नहीं करेगा। इसीलिए इस सवाल को पढ़ने वाले ज्यादातर डेवलपर्स को PHP की जरूरत होती है।
काई नैक

यह संभव क्लाइंट में एक जे एस-उत्पन्न डेटा छवि 100% डाउनलोड करने के लिए।
क्विन कॉमेंडेंट

स्पष्ट नहीं होने के लिए क्षमा करें। मेरा मतलब था "सर्वरसाइड सेव" - केवल जावास्क्रिप्ट के साथ संभव नहीं।
काई नैक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.