Start · Sprachen · PHP · Snippets · URL-Slug aus Titel generieren

URL-Slug aus Titel generieren

Strings & Regex

Für SEO-freundliche URLs. Umlaute transliterieren, Sonderzeichen entfernen, Wörter mit Bindestrich verbinden.

Code

<?php

declare(strict_types=1);

function slugify(string $text): string
{
    // Umlaute vor iconv → sonst gehen sie verloren
    $map = ['ä'=>'ae','ö'=>'oe','ü'=>'ue','Ä'=>'ae','Ö'=>'oe','Ü'=>'ue','ß'=>'ss'];
    $text = strtr($text, $map);

    // Weitere Diakritika transliterieren
    $text = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $text);

    // Kleinbuchstaben, Sonderzeichen zu Bindestrich
    $text = strtolower($text);
    $text = preg_replace('/[^a-z0-9]+/', '-', $text);

    return trim($text, '-');
}

echo slugify('Warum PHP 8.4 großartig ist!');
// warum-php-8-4-grossartig-ist
warum-php-8-4-grossartig-ist