/ / Згенерувати шлаг з німецькими умлаутами - php, regex

Генеруйте слизняк німецькими умлаутами - php, regex

Я намагаюся згенерувати шлейф з рядка, але у мене виникли деякі проблеми з німецькими umlauts:

$text = "Ein schöner Text";
$text = preg_replace("~[^\pLd]+~u", "-", $text);
$text = trim($text, "-");
$text = iconv("utf-8", "ASCII//TRANSLIT", $text);
$text = strtolower($text);
$text = preg_replace("~[^-w]+~", "", $text);

Результатом має бути: "ein-schoener-text"

Відповіді:

0 для відповіді № 1

Змініть другу позицію preg_replace на наведене нижче, щоб відповідати будь-якій букві на будь-якій мові, яку потрібно використовувати p{L} візерунок

$text = preg_replace("~[^p{L}d]+~u", "-", $text);

Код:

<?php
$text = "Ein schöner Text";
$text = preg_replace("~[^p{L}d]+~u", "-", $text);
$text = trim($text, "-");
$text = iconv("utf-8", "ASCII//TRANSLIT", $text);
$text = strtolower($text);
$text = preg_replace("~[^-w]+~", "", $text);
echo $text;
?>

Вихід:

ein-schoner-text