Génération dynamique d'un code QR avec PHP [fermé]

j'essaie de générer des codes QR sur mon site. Tout ce qu'ils ont à faire est d'avoir une URL qui une variable sur mon site. Quelle serait la meilleure façon de le faire?

70
demandé sur o0'. 2011-05-10 02:47:53

7 réponses

il est intéressant d'ajouter que, en plus de la bibliothèque de codes QR affichés par @abaumg , Google fournit un codes QR API codes QR API de nombreux remerciements à @Toukakoukan pour le Link Update .

pour utiliser ceci, fondamentalement:

/images/content/5943368/b2749f90cdaaf7826fb62f0546be326e.com
  • 300x300 est la taille de L'image QR que vous voulez générer,
  • le chl est la chaîne encodée par l'url que vous voulez changer en code QR, et
  • le choe est le codage (facultatif).

le lien, ci-dessus, donne plus de détails, mais pour l'utiliser, il suffit d'avoir le src d'une image pointer vers la valeur manipulée, comme ceci:

<img src="/images/content/5943368/b2749f90cdaaf7826fb62f0546be326e.com" title="Link to Google.com" />

Démo:

144
répondu Community 2017-05-23 12:26:32

la façon la plus facile de générer des codes QR avec PHP est la bibliothèque phpqrcode .

70
répondu abaumg 2011-05-09 22:49:27

la bibliothèque phpqrcode est vraiment rapide à configurer et la documentation de L'API est facile à comprendre.

en plus de la réponse d'abaumg j'ai joint 2 exemples dans PHP de http://phpqrcode.sourceforge.net/examples/index.php

1. Code QR encoder

incluez d'abord la bibliothèque de votre chemin local

include('../qrlib.php');

puis de sortir l'image directement comme PNG stream le font par exemple:

QRcode::png('your texte here...');

pour sauvegarder le résultat localement sous forme D'image 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. Code QR décodeur

Voir Aussi Le zxing decoder:

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

assez utile pour vérifier le sortie.

3. Liste des formats de données

une liste de format de données que vous pouvez utiliser dans votre code QR selon le type de données :

  • URL du site web: http://stackoverflow.com (y compris le protocole http:// )
  • courriel: mailto:name@example.com
  • numéro de téléphone: +16365553344 (y compris le code du pays))
  • SMS: smsto: numéro: message
  • Message MMS: mms:numéro:objet
  • YouTube de la Vidéo: youtube://ID (peut fonctionner sur l'iPhone, pas normalisée)

type de données supplémentaires sur http://blog.thenetimpact.com/2011/07/decoding-qr-codes-how-to-format-data-for-qr-code-generators /

16
répondu RafaSashi 2014-01-11 17:21:28

la bibliothèque endroid/QrCode est facile à utiliser, bien entretenue, et peut être installée en utilisant composer. Il y a aussi un bundle à utiliser directement avec Symfony.

installation:

$ composer require endroid/qrcode

Utilisation :

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

The generated QRCode

8
répondu Iwazaru 2016-11-23 12:16:55

qrcode-générateur sur Github. Script le plus simple et fonctionne comme le charme.

Pour:

  • pas de dépendance de tiers
  • pas de limitation du nombre de codes QR générations
7
répondu praba230890 2016-09-09 08:41:19

je sais que la question Est de savoir comment générer des codes QR en utilisant PHP, mais pour d'autres qui sont à la recherche d'un moyen de générer des codes pour les sites Web faisant cela en javascript pur est une bonne façon de le faire. Le plugin jquery-qrcode jquery Le fait bien.

3
répondu Quinn Comendant 2014-02-05 00:07:09

j'utilise l'api QRCode de google depuis quelque temps, mais je n'ai pas tout à fait aimé cela parce que cela me demande D'être sur Internet pour accéder à l'image générée.

j'ai fait une petite recherche comand-line et j'ai découvert que linux a un outil en ligne de commande qrencode pour générer des qr-codes.

j'ai écrit ce petit script. Et la bonne partie est que l'image générée est moins de 1KB dans la taille. Eh bien, les données fournies sont simplement une 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);

puis dans le html je charge l'image:

<img class="emrQRCode" src="<?=$imgData ?>" />

vous avez juste besoin de l'avoir installé. [la plupart des applications d'imagerie sous linux l'auraient installé sous le capot sans que vous vous en rendiez compte.

3
répondu Peter 2015-10-16 21:18:43