[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Заменить все пробельные символы до и после
olgatcpip
Здравствуйте.
Требуется заменить сделать ключевые слова типа для облака тегов. Хочется до сохранения привести к нужному формату. Написала вот что.

/**
* Заменить все пробельные символы до и после ","|";" на ","
* И удалить запятые и пробельные символы из начала и конца строки
*
@param $s - строка
*
@return string
*/

function convKW($s){
$pattern = '/(\s*[,;]\s*)/i';
$s = trim(preg_replace($pattern,',',trim($s)),',');
return str_replace(",",", ",$s);
}


Может кто знает более изящное решение? Поделитесь, пожалуйста.

Ага и почти сразу увидела избыточность не нужную
trim($s) - лишнее

function convKW($s){
$pattern = '/(\s*[,;]\s*)/i';
$s = trim(preg_replace($pattern,',',$s),',');
return str_replace(",",", ",$s);
}




Спустя 2 часа, 47 минут, 27 секунд (8.09.2011 - 10:31) Winston написал(а):
Так лучше ?
function convKW($s){
$pattern = '/\pZ*[,;]\pZ*/su';
return trim(preg_replace($pattern, ', ', trim($s)), ',');
}

Спустя 5 минут, 42 секунды (8.09.2011 - 10:37) olgatcpip написал(а):
Winston
Обясни чем?
я конечно вижу что строк меньше, собственно у себя певый вариант я все таки аналогично сократила в итоге.

Но может твоя регулярка быстрее рабтает?
А вообще я думала можно избежать такого большого количества trim
И кажется уже нашла один избыточный.

trim($s) НЕ НАДО -это точно!

Я исправлю в первом посте это

Спустя 1 минута, 39 секунд (8.09.2011 - 10:38) olgatcpip написал(а):
Winston
Извини, поняла, чем твой вариант изящнее smile.gif

Спустя 17 минут, 47 секунд (8.09.2011 - 10:56) Winston написал(а):
В общем мой первый код отрабатывает в среднем за 0.000050
А такой
function convKW($s){
$pattern = array(',', ';', ' ,', ' ;', ' , ', ' ; ', '; ');
return trim(str_replace($pattern, ', ', $s), ',');
}

За 0.000045 :)

Спустя 20 минут, 50 секунд (8.09.2011 - 11:17) olgatcpip написал(а):
Winston
Я попробовала твой первый вариант, чуть не то
Цитата
++ ДО +++++++++++++++++++++++
1 -  ,wtrrt rrtertr , ывфывва, rtretertre,
2 -  ;wtrrt rrtertr , ывфывва;
3 -  ; , wtrrt rrtertr , ывфывва;
** ПОСЛЕ ************************
1 -  wtrrt rrtertr, ывфывва, rtretertre,
2 -  wtrrt rrtertr, ывфывва,
3 -  , wtrrt rrtertr, ывфывва,

в начале и в конце запятые не нужны smile.gif - это так для лучшей формулировки моей задачи
У меня во входных строках пробелы стоят, форум их убирает, невидно, так я поясняю.

Спустя 17 минут, 8 секунд (8.09.2011 - 11:34) Winston написал(а):
А так ?
function convKW($s){
$pattern = '/\pZ*[,;]\pZ*/su';
return trim(preg_replace($pattern, ', ', $s), ' ,');
}

Спустя 7 минут (8.09.2011 - 11:41) olgatcpip написал(а):
а так шикарно, не знала. что trim так тоже понимает параметры
думаю боле комфортного варианта не сможет быть


_____________
Ласковое слово и кошке приятно... Плюсик в карму сойдет wink.gif
*smarty дока - новая любовь
Моё рукотворение ругайте, хвалите smile.gif
Веду маленький блог
в этом блоге публикую новые работы
WMR217126627282 wink.gif

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.