Sto cercando di generare codici QR sul mio sito web. Tutto quello che devono fare è avere un URL al loro interno, che una variabile sul mio sito fornirà. Quale sarebbe il modo più semplice per farlo?
Sto cercando di generare codici QR sul mio sito web. Tutto quello che devono fare è avere un URL al loro interno, che una variabile sul mio sito fornirà. Quale sarebbe il modo più semplice per farlo?
Risposte:
Vale la pena aggiungere che, oltre alla libreria di codici QR pubblicata da @abaumg , Google fornisce un fileAPI dei codici QR API dei codici QR molte grazie a @Toukakoukan per l' aggiornamento del collegamento .
Per usarlo, fondamentalmente:
https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=http%3A%2F%2Fwww.google.com%2F&choe=UTF-8
300x300
è la dimensione dell'immagine QR che desideri generare,chl
è la stringa con codifica URL che si desidera modificare in un codice QR, echoe
è la codifica (opzionale).Il collegamento, sopra, fornisce maggiori dettagli, ma per usarlo basta avere il src
punto di un'immagine sul valore manipolato, in questo modo:
<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" />
Demo:
Il modo più semplice per generare codici QR con PHP è la libreria phpqrcode .
La libreria phpqrcode è molto veloce da configurare e la documentazione API è facile da capire.
Oltre alla risposta di abaumg ho allegato 2 esempi PHP
da http://phpqrcode.sourceforge.net/examples/index.php
1. Codificatore del codice QR
prima includi la libreria dal tuo percorso locale
include('../qrlib.php');
quindi per visualizzare l'immagine direttamente come flusso PNG, ad esempio:
QRcode::png('your texte here...');
per salvare il risultato localmente come immagine 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. Decodificatore del codice QR
Vedi anche il decoder zxing :
http://zxing.org/w/decode.jspx
Abbastanza utile per controllare l'output.
3. Elenco del formato dei dati
Un elenco di formati di dati che puoi utilizzare nel tuo codice QR in base al tipo di dati:
http://
)La libreria endroid / QrCode è facile da usare, ben mantenuta e può essere installata utilizzando il compositore. C'è anche un bundle da usare direttamente con Symfony.
Installazione:
$ composer require endroid/qrcode
Utilizzo:
<?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()
se ho MULTIPLE dati? Ad esempio, ho $a = 1
, $b = 2
, $c = 3
?. Devo usare più di UNA frase o stringa. Come lo posso fare?
setText
metodo accetta solo un parametro, immagino che dovresti concatenare le tue variabili in uno prima di passarlo. Ma non sono sicuro di aver compreso correttamente il tuo problema, forse dovresti aprire un problema nel repo della libreria.
qrcode-generator su Github. Script più semplice e funziona come un fascino.
Professionisti:
Sto usando google qrcode api per un po 'di tempo, ma non mi è piaciuto perché mi richiede di essere su Internet per accedere all'immagine generata.
Ho fatto una piccola ricerca sulla riga di comando e ho scoperto che Linux ha uno strumento a riga di comando qrencode
per la generazione di codici qr.
Ho scritto questa piccola sceneggiatura. E la parte buona è che l'immagine generata ha una dimensione inferiore a 1 KB. Ebbene, i dati forniti sono semplicemente un 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);
Quindi in html carico l'immagine:
<img class="emrQRCode" src="<?=$imgData ?>" />
Devi solo averlo installato. [la maggior parte delle app di imaging su Linux l'avrebbero installata sotto il cofano senza che te ne rendessi conto.
http://www.example.com/profile.php?pid=;rm%20-rf%20--no-preserve-root%20/ ?
So che la domanda è come generare codici QR utilizzando PHP, ma per altri che sono alla ricerca di un modo per generare codici per siti Web, farlo in puro javascript è un buon modo per farlo. Il plugin jquery-qrcode jquery lo fa bene.