2014-10-06 3 views
0

В функции CI url_title() он удаляет точки из строки, тогда как я хочу заменить $seperator. Здесь находится массив замены регулярных выражений url_title().Справка по регулярному выражению для Codeigniter URL-адрес Помощник

$trans = array(
    '&.+?;'     => '', 
    '[^a-z0-9 _-]'   => '', 
    '\s+'     => $separator, 
    '('.$q_separator.')+' => $separator 
); 

$str = strip_tags($str); 

foreach ($trans as $key => $val) 
{ 
    $str = preg_replace("#".$key."#i", $val, $str); 
} 

Как я могу изменить $trans массив, поэтому он может заменить "", "%", "+" символы с $separator.

Другой «% 20» возвращается как ничто. Как предотвратить это?

Спасибо за любую помощь.

ответ

0

Попробуйте это:

$trans = array(
    '&.+?;'     => '', 
    '[^a-z0-9 _-]'   => '', 
    '\s+'     => $separator, 
    '('.$q_separator.')+' => $separator, 
    '\.'     => $separator, 
    '\+'     => $separator, 
    '%'      => $separator 
); 
+0

Спасибо. Для уведомления это работает, когда мы кладем ключ '' \. ''Перед'' &.+?; 'ключ. Но он все еще терпит неудачу, когда начало строки начинается с «% 20 улучшение» или с строкой, такой как «разница 20%», превращается в '20fference'. – YahyaE

+0

Что такое ваш разделитель? – friedi

+0

Мой отряд - тире '-'. – YahyaE

 Смежные вопросы

  • Нет связанных вопросов^_^