Убрать дублирующиеся символы

Статус
В этой теме нельзя размещать новые ответы.

Raccoon

Участник
Регистрация
31 Июл 2007
Сообщения
176
Реакции
9
Всем добрый день!

Вопрос такой:

есть функция конвертации русского заголовка в транслит для URL:

function str2url($str) {
// Обрезаем строку
$str = substr($str, 0, 24);
// переводим в транслит
$str = rus2translit($str);
// в нижний регистр
$str = strtolower($str);
// заменям все ненужное нам на "-"
$str = preg_replace('~[^-a-z0-9_]+~u', '-', $str);
// удаляем начальные и конечные '-'
$str = trim($str, "-");

return $str;
}

Но есть один вопрос, если например входящая строка будет такого вида: "Первая новость - добрый день!", то функция генерит лишние дефисы:
pervaya-novost---dobriy-den

Как убрать дублирующиеся дефисы?
 
$str = preg_replace('#-{2,}#', '-', $str);
 
Так имхо красивее
PHP:
echo  $str = preg_replace("/-+/", '-', $dtr);
 
оно может и красивее, только много ненужных замен делает меняя, вхождения одиночного минуса на него же самого

тогда уж так

PHP:
echo  $str = preg_replace("/--+/", '-', $str);

но мой вариант мне кажется более понятным. и я предпочитаю ясность красоте.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху