Files
html/api/ambre-tool-qr.php
2026-04-22 00:10:04 +02:00

30 lines
1.2 KiB
PHP

<?php
/**
* ambre-tool-qr.php · QR code generator (free via goqr.me API)
*/
header("Content-Type: application/json; charset=utf-8");
$in = json_decode(file_get_contents("php://input"), true) ?: $_POST ?: $_GET;
$text = trim($in["text"] ?? $in["q"] ?? "");
$size = intval($in["size"] ?? 512);
if (!$text) { echo json_encode(["error"=>"text required"]); exit; }
$t0 = microtime(true);
$url = "https://api.qrserver.com/v1/create-qr-code/?size={$size}x{$size}&data=" . urlencode($text);
$ctx = stream_context_create(["http"=>["timeout"=>15]]);
$img = @file_get_contents($url, false, $ctx);
if (!$img || strlen($img) < 100) { echo json_encode(["error"=>"qr gen failed"]); exit; }
$dir = "/var/www/html/generated";
if (!is_dir($dir)) @mkdir($dir, 0755, true);
$slug = substr(preg_replace('/[^a-z0-9]/i', '-', $text), 0, 30);
$filename = "wevia-qr-{$slug}-" . date("Ymd-His") . "-" . bin2hex(random_bytes(3)) . ".png";
file_put_contents("$dir/$filename", $img);
echo json_encode([
"success"=>true, "text"=>$text, "size"=>$size,
"url"=>"https://weval-consulting.com/generated/$filename",
"size_kb"=>round(strlen($img)/1024, 1),
"elapsed_ms"=>round((microtime(true)-$t0)*1000),
"provider"=>"WEVIA QR",
]);