Skip to content

Instantly share code, notes, and snippets.

@daveh
Last active April 1, 2024 13:46
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save daveh/c63af8c6e02ac592130cdfe43c8b4570 to your computer and use it in GitHub Desktop.
Save daveh/c63af8c6e02ac592130cdfe43c8b4570 to your computer and use it in GitHub Desktop.
Generate QR Codes with PHP (code to accompany https://youtu.be/8xPWPGxL7Xk)
<!DOCTYPE html>
<html>
<head>
<title>Generating QR Codes with PHP</title>
<meta charset="UTF-8">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/water.css@2/out/water.css">
</head>
<body>
<h1>Generating QR Codes with PHP</h1>
<form method="post" action="generate.php">
<label for="text">Text</label>
<textarea id="text" name="text"></textarea>
<button>Generate</button>
</form>
</body>
</html>
<?php
require "vendor/autoload.php";
use Endroid\QrCode\QrCode;
use Endroid\QrCode\Writer\PngWriter;
use Endroid\QrCode\Color\Color;
use Endroid\QrCode\Label\Label;
use Endroid\QrCode\Label\Alignment\LabelAlignmentLeft;
use Endroid\QrCode\Logo\Logo;
use Endroid\QrCode\ErrorCorrectionLevel\ErrorCorrectionLevelHigh;
$text = $_POST["text"];
$qr_code = QrCode::create($text)
->setSize(600)
->setMargin(40)
->setForegroundColor(new Color(255, 128, 0))
->setBackgroundColor(new Color(153, 204, 255))
->setErrorCorrectionLevel(new ErrorCorrectionLevelHigh);
$label = Label::create("This is a label")
->setTextColor(new Color(255, 0, 0))
->setAlignment(new LabelAlignmentLeft);
$logo = Logo::create("/path/to/the/logo/file")
->setResizeToWidth(150);
$writer = new PngWriter;
$result = $writer->write($qr_code, logo: $logo, label: $label);
// Output the QR code image to the browser
header("Content-Type: " . $result->getMimeType());
echo $result->getString();
// Save the image to a file
$result->saveToFile("qr-code.png");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment