Генератор QR кодов
Просим ChatGPT написать простые сервисы, которые могут пригодиться в работе и смотрим, что в итоге получится. Запросы пишем максимально простым и понятным языком.
Запрос четвертый:
Напиши скрипт сервиса, который позволяет генерировать QR коды для четырех типов данных: ссылка, текст, E-mail адрес, номер телефона. Для написания кода используй html и php. Пользователь при старте выбирает, что именно он хочет закодировать в QR. После этого вводит соответствующие данные в поле. В результате получает QR код размером 1000*1000 пикселей с возможностью сохранить себе на компьютер. Для оформления используй минималистичный понятный интерфейс на основе bootstrap 5. Внизу страницы добавь текстовый блок, в котором укажи, что данный код сгенерирован ChatGPT, укажи версию и свои параметры, укажи время генерации.
Вы можете сразу перейти по ссылке и посмотреть результат.
Размышления системы:
Okay, so the instruction says to use a web tool next turn and follow up with an analysis message afterward. I need to write a complete code with HTML, PHP, and Bootstrap 5 to generate QR codes. The service will allow users to pick the type of data (link, text, email, or phone number) and display a QR code that can be saved. It should also include time of generation, version details, and be styled with a minimalist Bootstrap 5 interface. I'll also consider how to handle the PHP QR code library inclusion.
To create this script, I’ll use minimal Bootstrap 5 styling and have a form that lets users choose the type of content (link, text, email, phone). Once submitted, the QR code will be generated using the phpqrcode library (which I’ll instruct the user to install if it's missing). The QR code will be displayed as a 1000x1000 image, with a download link, and I'll embed version details and generation time at the bottom, keeping the code self-contained inside a single file.
To create this script, I’ll use minimal Bootstrap 5 styling and have a form that lets users choose the type of content (link, text, email, phone). Once submitted, the QR code will be generated using the phpqrcode library (which I’ll instruct the user to install if it's missing). The QR code will be displayed as a 1000x1000 image, with a download link, and I'll embed version details and generation time at the bottom, keeping the code self-contained inside a single file.
Ниже приведён пример кода сервиса (файл, например,
index.php
), который реализует требуемый функционал. Обратите внимание, что для генерации QR-кода используется библиотека phpqrcode. Скачайте её и поместите в папку phpqrcode
рядом с этим файлом.<?php
// index.php
// Обработка отправки формы
$qr_generated = false;
$qr_filename = '';
$generation_time = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['data']) && isset($_POST['type'])) {
$type = $_POST['type'];
$data = trim($_POST['data']);
// В зависимости от выбранного типа корректируем данные
switch ($type) {
case 'link':
$qr_data = $data;
// Если ссылка не начинается с http:// или https://, добавляем http://
if (!preg_match('#^https?://#', $qr_data)) {
$qr_data = 'http://' . $qr_data;
}
break;
case 'email':
// Если адрес не начинается с mailto:, добавляем его
if (strpos($data, 'mailto:') !== 0) {
$qr_data = 'mailto:' . $data;
} else {
$qr_data = $data;
}
break;
case 'phone':
// Если номер не начинается с tel:, добавляем его
if (strpos($data, 'tel:') !== 0) {
$qr_data = 'tel:' . $data;
} else {
$qr_data = $data;
}
break;
case 'text':
default:
$qr_data = $data;
break;
}
// Подключаем библиотеку phpqrcode
require_once 'phpqrcode/qrlib.php';
// Создаем временную директорию для хранения QR-кодов, если её ещё нет
$tempDir = 'temp/';
if (!file_exists($tempDir)) {
mkdir($tempDir, 0755, true);
}
// Формируем имя файла на основе текущего времени
$fileName = $tempDir . 'qr_' . time() . '.png';
// Параметры генерации QR-кода:
// $errorCorrectionLevel - уровень коррекции ошибок (L, M, Q, H)
// $matrixPointSize - размер модуля (подбирается опытным путем)
// $margin - отступ
$errorCorrectionLevel = 'H';
$matrixPointSize = 10; // Подбирайте значение для достижения нужного размера
$margin = 2;
// Генерация QR-кода и сохранение в файл
QRcode::png($qr_data, $fileName, $errorCorrectionLevel, $matrixPointSize, $margin);
$qr_generated = true;
$qr_filename = $fileName;
$generation_time = date("Y-m-d H:i:s");
}
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Генератор QR-кодов</title>
<!-- Подключение Bootstrap 5 -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container mt-5">
<h1 class="mb-4">Генератор QR-кодов</h1>
<form method="post">
<div class="mb-3">
<label for="type" class="form-label">Выберите тип данных</label>
<select class="form-select" id="type" name="type" required>
<option value="link">Ссылка</option>
<option value="text">Текст</option>
<option value="email">E-mail адрес</option>
<option value="phone">Номер телефона</option>
</select>
</div>
<div class="mb-3">
<label for="data" class="form-label">Введите данные</label>
<input type="text" class="form-control" id="data" name="data" required>
</div>
<button type="submit" class="btn btn-primary">Создать QR-код</button>
</form>
<?php if ($qr_generated): ?>
<hr>
<h2 class="mt-4">Ваш QR-код:</h2>
<!-- Вывод QR-кода с фиксированным размером 1000x1000 пикселей -->
<img src="<?php echo $qr_filename; ?>" alt="QR код" style="width: 1000px; height: 1000px;" class="img-fluid">
<div class="mt-3">
<a href="<?php echo $qr_filename; ?>" download="qr_code.png" class="btn btn-success">Сохранить на компьютер</a>
</div>
<?php endif; ?>
<!-- Текстовый блок с информацией о генерации -->
<div class="mt-5">
<p class="text-muted">
Данный код сгенерирован ChatGPT, версия GPT-4. Параметры: минималистичный интерфейс на Bootstrap 5, генерация QR-кода с использованием библиотеки phpqrcode.
Время генерации: <?php echo $generation_time ? $generation_time : date("Y-m-d H:i:s"); ?>
</p>
</div>
</div>
</body>
</html>
Краткие пояснения:
- Обработка формы: При отправке формы скрипт получает выбранный тип и введённые данные, затем в зависимости от типа корректирует формат (например, добавляет префикс http://, mailto: или tel:).
- Генерация QR-кода: С использованием библиотеки phpqrcode QR-код сохраняется в папку temp/ (она создаётся, если отсутствует). Параметры $matrixPointSize и $margin можно подбирать для получения изображения нужного размера. Для гарантированного вывода с размерами 1000×1000 пикселей используется CSS-стилизация.
- Интерфейс: Простой и понятный интерфейс на Bootstrap 5. Пользователь сначала выбирает тип данных, затем вводит их и нажимает кнопку для генерации QR-кода.
- Информация о генерации: Внизу страницы выводится текстовый блок с информацией о генерации (ChatGPT, версия, параметры и время генерации).
Сохраните этот файл, убедитесь, что библиотека phpqrcode установлена, и запустите его на сервере с поддержкой PHP.