![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| PROme |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 23.7.2003 Где: Kiev Репутация: -1 Всего: 1 |
блин, снова я со своими регами
уже частично выучил, но никак не хватает времени значит проблема не столько в сабже, сколько в его оптимальной реализации, т.к. надо будет значительное количество данных обрабатывать нужно: n=>2 пробелов заменять на 1 пробел m=>1 табуляций заменять на 1 пробел n=>1 + m=>1 пробелов + табуляций заменять на 1 пробел как наиболее эффективно это организовать? ЗЫ: все возможные знаки переноса "(\r\n|\n|\r)" из строки сразу удаляются за ненадобностью -------------------- SEO-мастер |
|||
|
||||
| Bikutoru |
|
|||
|
Увлекающийся ![]() ![]() Профиль Группа: Участник Сообщений: 522 Регистрация: 24.5.2005 Где: Москва Репутация: 8 Всего: 22 |
Первые два пункта и без регов прекрасно делаются:
А вот последний я не очень понял. Это сообщение отредактировал(а) Bikutoru - 16.8.2005, 09:16 -------------------- Человек, словно в зеркале мир — многолик, Он ничтожен — и он же безмерно велик! Омар Хайям |
|||
|
||||
| PROme |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 23.7.2003 Где: Kiev Репутация: -1 Всего: 1 |
Bikutoru спасибо, ну это и так ясно... мне интересно, сколько ресурсов на это понадобиться? данных очень много, может есть что-то более прогрессивное?
ну если подряд идет один или более пробел и одна или более табуляция (в любом порядке и последовательности), все это надо заменять одним проблеом -------------------- SEO-мастер |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
А я бы тут регуляркой воспользовался. Чтобы идти по тексту 2 раза.
|
|||
|
||||
| Bikutoru |
|
|||
|
Увлекающийся ![]() ![]() Профиль Группа: Участник Сообщений: 522 Регистрация: 24.5.2005 Где: Москва Репутация: 8 Всего: 22 |
Тогда то, что я написал, уже должно это сделать. А насчет скорости, str_replace работает намного быстрее, чем preg_replace, но str_replace нужно использовать неоднократно, так что не все так очевидно. Мой совет - поэкспериментируй с разными данными, а результаты выложи сюда... Посмотрим на них и учтем на будующее... -------------------- Человек, словно в зеркале мир — многолик, Он ничтожен — и он же безмерно велик! Омар Хайям |
|||
|
||||
| Mal Hack |
|
||||||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Хм... Ну вот тебе тест (Я оптимизировал регулярки):
Результат:
Работал с файлом 68 килобайт (200 строк где-то). Файл кода. Его и приаттачиваю. Это сообщение отредактировал(а) Mal Hack - 16.8.2005, 15:40 Присоединённый файл ( Кол-во скачиваний: 3 )
preg_test.txt 66,69 Kb |
||||||
|
|||||||
| Bikutoru |
|
|||
|
Увлекающийся ![]() ![]() Профиль Группа: Участник Сообщений: 522 Регистрация: 24.5.2005 Где: Москва Репутация: 8 Всего: 22 |
Невероятно, но факт! preg_replace быстрее! Даже если убрать циклы!
Пробовал с другими файлами текстового содержимого размером от 15Кб до 300Кб - порядок примерно тот же! Интересный факт - результаты работы получаются разными: $string1 != $string2 ! -------------------- Человек, словно в зеркале мир — многолик, Он ничтожен — и он же безмерно велик! Омар Хайям |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
При рэгах \nпробел остается пробелом без перевода строки, у тебя - стирается, почему - не понимаю ЗЫ: А вся фишка тут в модификаторе S (s - больщое).. В принципе еще можно пару заюзать, но не хочу Попробуй без него Это сообщение отредактировал(а) Mal Hack - 16.8.2005, 18:39 |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |