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