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

Печать RSS
119

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

Пацак
0
Например, preg_replace('/[^a-z0-9-]/', '', str_replace(array('русские буквы', ' ', '--', '--'), array('английские буквы', '-', '-', '-'), strtolower(trim($str))));
Изменил: Петр (15.10.2012 / 12:11)
Автор
Дух
0
Набросал что то, может пригодится кому
Прикрепленные файлы:
translit.rar (1.04Kb)
П

Пацак
0
3. Рашид, ничего себе, целый класс для такой задачи. Причем 3 пробела не обрабатываются.
Автор
Дух
0
просто в будущем может понадобиться еще по каким то правилам преобразовывать текст, хелпер это.
Как сделать чтобы любое количество ------ заменяло на -? Не дружу с регулярками)

Оранжевые штаны
0
1. Рашид, зачем придумывать еще один велосипед когда есть уже? В интернете куча реализации, советую брать те что сделанные по стандарту.
Автор
Дух
0
6, например?
П

Пацак
0
5. Рашид, я ж написал - str_replace(array('--','--'), array('-', '-'), $str); регуляркой - preg_replace('/-++/', '-', $str);
Изменил: Петр (15.10.2012 / 12:26)
Автор
Дух
0
8, спасибо, регуляркой сделал, все ок
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск