Przejdź do głównej zawartości

54. Generator ogłoszeń HTML

Generator ogłoszeń HTML

Aplikacja PHP, w której wypełniasz formularz (tytuł, treść, kontakt, data, kategoria), a system generuje sformatowane ogłoszenie HTML i zapisuje je do pliku. Można przeglądać archiwum ogłoszeń.

  • Generowania dynamicznego HTML z szablonu PHP
  • Zapisu pliku HTML na dysku (file_put_contents)
  • Listowania plików w katalogu (glob())
  • Walidacji daty (DateTime::createFromFormat)

Generowanie dokumentów HTML to podstawa systemów raportowania, fakturowania i edycji treści. Techniki te są używane w każdym CMS i systemie generowania PDF.

  1. Formularz: tytuł, treść, kontakt, data ważności, kategoria
  2. Walidacja pól i daty
  3. Generowanie sformatowanego HTML ogłoszenia
  4. Zapis do pliku announcements/YYYY-MM-DD-slug.html
  5. Lista wygenerowanych ogłoszeń z linkami
{
"announcements": [
{
"id": 1,
"title": "Zebranie rodziców",
"category": "szkola",
"filename": "2026-02-10-zebranie-rodzicow.html",
"created_at": "2026-02-10"
}
]
}
  • Formularz z 4 polami (tytuł, treść, kontakt, data)
  • Generowanie i wyświetlanie ogłoszenia na ekranie
  • Walidacja: tytuł wymagany, data w przyszłości
Ocena: 3.0
<?php
// Generowanie HTML ogłoszenia
function generateAnnouncementHTML(array $data): string {
$title = htmlspecialchars($data['title']);
$content = nl2br(htmlspecialchars($data['content']));
$contact = htmlspecialchars($data['contact']);
$expires = htmlspecialchars($data['expires']);
return <<<HTML
<!DOCTYPE html>
<html lang="pl">
<head><meta charset="UTF-8"><title>{$title}</title></head>
<body>
<div style="max-width:600px;margin:auto;padding:20px;border:2px solid #333">
<h1>{$title}</h1>
<p>{$content}</p>
<hr>
<p><strong>Kontakt:</strong> {$contact}</p>
<p><strong>Ważne do:</strong> {$expires}</p>
</div>
</body>
</html>
HTML;
}
// Tworzenie sluga
function createSlug(string $text): string {
$text = mb_strtolower($text);
$text = strtr($text, ['ą'=>'a','ę'=>'e','ó'=>'o','ś'=>'s','ł'=>'l','ż'=>'z','ź'=>'z','ć'=>'c','ń'=>'n']);
$text = preg_replace('/[^a-z0-9]+/', '-', $text);
return trim($text, '-');
}
// Zapis do pliku
$filename = date('Y-m-d') . '-' . createSlug($title) . '.html';
file_put_contents("announcements/$filename", generateAnnouncementHTML($formData));

Twój pierwszy generator dokumentów!

Generator HTML to mała, ale kompletna aplikacja. Zacznij od formularza i wyświetlenia wyniku na ekranie, potem dodaj zapis do pliku.