Формирование URL алиаса

1. Удаленный (15.10.2012 / 11:09)
Хочется найти красивое решение, а не писать велосипед
Допустим есть название например "Подставка: 12% 3 mm",
Нужно формировать url для ЧПУ т.е из него - /podstavka-12-3mm
1. все в нижнем регистре
2. пробелы заменяются на "-"
3. знаки ;%*?( и т.д вырезаются
4. цифры остаются
5. чтобы не оставалось "--" (когда вырезался символ между пробелами, а вокруг пробелы стали черточками), и в начале и конце не было "-"
6. кириллица - транслитом

2. Петр (15.10.2012 / 12:04)
Например, preg_replace('/[^a-z0-9-]/', '', str_replace(array('русские буквы', ' ', '--', '--'), array('английские буквы', '-', '-', '-'), strtolower(trim($str))));

3. Удаленный (15.10.2012 / 12:05)
Набросал что то, может пригодится кому

4. Петр (15.10.2012 / 12:10)
3. Рашид, ничего себе, целый класс для такой задачи. Причем 3 пробела не обрабатываются.

5. Удаленный (15.10.2012 / 12:14)
просто в будущем может понадобиться еще по каким то правилам преобразовывать текст, хелпер это.
Как сделать чтобы любое количество ------ заменяло на -? Не дружу с регулярками)

6. Антон (15.10.2012 / 12:15)
1. Рашид, зачем придумывать еще один велосипед когда есть уже? В интернете куча реализации, советую брать те что сделанные по стандарту.

7. Удаленный (15.10.2012 / 12:16)
6, например?

8. Петр (15.10.2012 / 12:18)
5. Рашид, я ж написал - str_replace(array('--','--'), array('-', '-'), $str); регуляркой - preg_replace('/-++/', '-', $str);

9. Удаленный (15.10.2012 / 12:27)
8, спасибо, регуляркой сделал, все ок

URL: https://visavi.net/topics/34869