Я намагаюся згенерувати шлейф з рядка, але у мене виникли деякі проблеми з німецькими 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