Obtenez un QR
Générer 1 QRmii par programme coûte 1 crédit. Pour acheter des unités de crédit, cliquez sur le chariot dans le bandeau de votre page d'accueil.
Téléchargez le code de la fonction sendget
définie dans le fichier sendhttp.php.
Copiez le fichier dans l'espace de votre application.
NOTE : Reportez-vous à la page Appelez le service en PHP pour une description de la fonction sendget
.
URL
https://qrmii.com/api/getqr?login=&password=&url=&fg=&bg=&quality=&size=
login | Votre code d'identification. |
---|---|
password | Votre mot de passe. |
url | URL complète à rediriger. |
fg | Couleur du tracé du QR. |
bg | Couleur de fond du QR. |
quality | Niveau de qualité du QR. |
size | Taille du QR. |
url
est une chaîne de caractères au format standard scheme://domain:port/path?query#fragment
.
La partie scheme://domain
est obligatoire. scheme
vaut en général http
.
NOTE : url
sera normalisé par le programme afin que différentes expressions qui en fait représentent la même URL complète retournent la même URL courte.
fg
et bg
ont le format standard RRGGBB en hexadécimal avec ou sans # (DIÈSE).
quality
détermine le pourcentage maximum d'erreurs de reproduction du QR.
Plus le taux de correction est élevé, plus la taille minimum du QR est importante :
L | 7% | 25px |
M | 15% | 25px |
Q | 25% | 29px |
H | 33% | 33px |
size
multiplie la taille minimum du QR par une valeur entre 1 et 15.
EXEMPLE : Un QRmii de qualité M et d'une taille 4 fera 100 pixels par 100 pixels.
IMPORTANT : Les lecteurs de codes QR fonctionnent mieux si le contraste entre la couleur du tracé du QR et sa couleur de fond est prononcé. Générez quelques exemples à partir de la page d'accueil publique et vérifiez que les codes QR sont lisibles avec un smartphone.
Ajoutez le fichier getqr.php avec le contenu suivant :
- require_once 'sendhttp.php';
Charge le code de la fonction sendget
fournie par iZend.
- define('ROOT_DIR', dirname(__FILE__));
- define('QRMII_DIR', ROOT_DIR . DIRECTORY_SEPARATOR . 'qrmii');
Définit le répertoire de sauvegarde du PNG d'un code QR.
- function getqr($login, $password, $url, $fg='#000000', $bg='#ffffff', $quality='M', $size='2') {
Définit la fonction getqr
.
$login
est votre code d'identification. $password
est votre mot de passe.
$url
contient l'URL complète qui sera redirigée par le QRmii.
$fg
donne la couleur du tracé du code QR, noir par défaut.
$bg
donne la couleur du fond du code QR, blanc par défaut.
$quality
donne le niveau de qualité du code QR, M par défaut.
$size
donne la taille du code QR, 2 par défaut.
- $curl = 'http://qrmii.com/api/getqr';
- $args = array(
- 'login' => $login,
- 'password' => $password,
- 'url' => $url,
- 'fg' => $fg,
- 'bg' => $bg,
- 'quality' => $quality,
- 'size' => $size,
- );
Met $curl
à l'URL de l'action getqr.
Remplit le tableau $args
avec les paramètres de l'action getqr.
- $response=sendget($curl, $args);
Envoie la requête HTTP avec sendget
.
- if (!$response or $response[0] != 200) {
- return false;
- }
Si $response
vaut false
, le serveur est inaccessible.
Si $response[0]
ne contient pas le code de retour HTTP 200 Ok, une erreur d'exécution s'est produite.
En cas d'erreur, getqr
retourne false.
- $r = $response[1]['Content-Disposition'];
- $filename=substr($r, strpos($r, 'filename=')+9);
- $hash=basename($filename, '.png');
Extrait l'URL courte à partir du nom du fichier donné dans l'entête de la réponse.
- $data=$response[2];
- file_put_contents(QRMII_DIR . DIRECTORY_SEPARATOR . $filename, $data);
Écrit le corps de la réponse, la représentation binaire de l'image PNG du code QR, dans le dossier défini par la constante QRMII_DIR.
- return $hash;
- }
Retourne l'URL courte.
EXEMPLE
En supposant que vous avez sauvé les fichiers sendhttp.php et getqr.php dans le répertoire courant, créez le sous-répertoire qrmii, lancez PHP en mode interactif, chargez la fonction getqr
et appelez-la avec votre code d'identification, votre mot de passe et une URL en argument :
$ mkdir qrmii
$ php -a
php > require_once 'getqr.php';
php > echo getqr('abcdef', 'ABCDEF', 'https://www.qrmii.com');
a944d525
L'image du QR est dans le fichier qrmii/a944d525.png.
Essayez avec une couleur et une plus grande taille :
php > echo getqr('abcdef', 'ABCDEF', 'https://www.qrmii.com', '#ff9900', '#000000', 'L', 8);
a944d525
php > quit
Commentaires