![]() |
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]() ![]() ![]() |
|
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: нет Всего: 140 |
Добрый день.
Для того, чтобы избавится от повторяющих пробелов и управляющих символов (\r, \n, \t) использую следующее
Верна ли данная конструкция? Сильно ли она прожорлива и как её можно оптимизировать -------------------- Amazing ![]() |
|||
|
||||
ayax2005 |
|
|||
![]() echo $smile ![]() ![]() Профиль Группа: Участник Сообщений: 516 Регистрация: 17.4.2008 Где: Питер Репутация: нет Всего: 11 |
А зачем вообще это нужно? Контролировать пробелы правильнее на шаге тформирования контента в цмске, это сэкономит ресурсы при отображении; а управляющие символы чем помешали - ума не преложу.
Конечно, регулярка на боле-менее объёмный документ потребует времени на обработку. -------------------- все вопросы - из-за неверной формулировки задачи |
|||
|
||||
MoLeX |
|
||||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: нет Всего: 140 |
ayax2005, хотя бы для ответа AJAX.
Ответ такого вида уже не обработается
Добавлено через 1 минуту и 8 секунд Ответ генерируется из шаблона, и его лучше писать понятным образом для редактирования
Добавлено через 3 минуты и 57 секунд потом предпочитаю отдавать контент как можно сильнее ужатый - вырезаны лишние пробелы, переводы строк. Это позволяет отдавать контент немного быстрее -------------------- Amazing ![]() |
||||
|
|||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 12 Всего: 386 |
MoLeX, При кодировании строки в Json, как символ "\n" должен переводится в последовательность символов '\n'. Так что - что-то неправильное с генерацией данных для Ajax - надо бы разобратся
![]() К тому-же удалять служебные символы и пробелы из изображения строки может оказаться неправильно. Вдруг строка обязана содержать 5 пробелов? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
MoLeX |
|
||||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: нет Всего: 140 |
служебные не нужны, а для пробела есть Добавлено через 1 минуту и 9 секунд
служебные не нужны, а для пробела есть -------------------- Amazing ![]() |
||||
|
|||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 12 Всего: 386 |
Кстати, для выкидывания сдвоенных пробелов и пробельных символов лучше использовать такую регулярку
P.S. i - не нужен... Это сообщение отредактировал(а) ksnk - 7.2.2012, 09:31 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
krundetz |
|
||||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 1 Всего: 69 |
MoLeX, насчет прожорливости надо тестировать, вот вариант для сравнения вместо твоей первой
попробуй также вот эту, если я правильно помню то она тебе заменить обе твои
зачем два раза спецсимвол указал? Это сообщение отредактировал(а) krundetz - 7.2.2012, 13:31 |
||||
|
|||||
ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 12 Всего: 386 |
krundetz, После такой замены правильный json
превращается в неправильный
Это сообщение отредактировал(а) ksnk - 7.2.2012, 13:20 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
||||
|
|||||
krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 1 Всего: 69 |
хм, счас проверю руками Добавлено через 4 минуты и 31 секунду протестировал, получил следующие
Добавлено через 7 минут и 5 секунд сообразил ты про первый вариант, да там косяк сейчас поправлю, надо "" поменять на " " Добавлено через 8 минут и 54 секунды исправил |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 12 Всего: 386 |
Если указать один - заменен будет каждый пробел. Если два - только нужная сдвоенная комбинация пробельных символов -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 1 Всего: 69 |
||||
|
||||
ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 12 Всего: 386 |
Да. дествительно... Вот что значит - под Виндой сижу ![]() Тогда так
Хотя тут уже сложность регулярки может сожрать всю оптимальность замен ![]() В общем - тестировать надо. Это сообщение отредактировал(а) ksnk - 7.2.2012, 15:23 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
||||
|
|||||
krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 1 Всего: 69 |
ksnk, а такая конструкция:
разве не говорит что количество символов 1 или больше (то есть и 2)? А то что она заменяет пробел на пробел так ничего страшного. Цикл поиска всего с двумя условиями получается, а не с 7 как у тебя в последнем варианте. Что по идее должно работать быстрее. Хотя я за тест. Кстати как тестировать будем? Это сообщение отредактировал(а) krundetz - 8.2.2012, 00:23 |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 12 Всего: 386 |
Моя проигрывает примерно в 1,5 раза. Можно не тестировать. Накладные расходы на сложность регулярки сильно больше накладных расходов на лишние реплейсы... Хотя мой первоначальный вариант немного выигрывает одинокому \s ![]()
Добавлено @ 01:11 mkt - функция, вычисляющая время между вызовами mkt Это сообщение отредактировал(а) ksnk - 8.2.2012, 01:19 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 1 Всего: 71 |
результат:
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Тексты | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |