Автор Тема: Можно ли короче?  (Прочитано 2522 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Сергей Иванов

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 24
  • +0/-0
  • 0
    • Просмотр профиля
    • http://chubee.ru
Можно ли короче?
« : 09 Мая 2006, 10:49:25 »

    
function ChopText($text_data)
    {
       
$text_data=str_replace("\\r""",$text_data);
       
$text_data=str_replace("   "" ",$text_data);
       
$text_data=str_replace("  "" ",$text_data);
       
$text_data=str_replace("\\n ""\\n",$text_data);
       
$text_data=str_replace("\\n ""\\n",$text_data);
       
$text_data=str_replace("\\n\\n\\n\\n""\\n",$text_data);
       
$text_data=str_replace("\\n\\n\\n""\\n",$text_data);
       
$text_data=str_replace("\\n\\n""\\n",$text_data);
       
$text_data=str_replace("\\n\\n""\\n",$text_data);
       
$text_data=str_replace("\\n""\\n\\n",$text_data);
       if(
substr($text_data,0,2)==="\\n\\n")
       
$text_data=substr($text_data,2);
       if(
substr($text_data,-2)==="\\n\\n")
       
$text_data=substr($text_data,0,-2);
       return 
$text_data;
    }


можно ли как-то короче это написать? одним красивым регулряным выражением?

Оффлайн vasa_c

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 157
  • +0/-0
  • 0
    • Просмотр профиля
    • http://blgo.ru/blog/
Можно ли короче?
« Ответ #1 : 11 Мая 2006, 13:51:55 »
/\\ +/ - последовательность из 1 или более пробелов.
/\\n+/ - последовательность \\n
/^\\n\\n/ - два \\n в начале
/\\n\\n$/ - два \\n в конце

4 рега а не один, но зато красивые и короткие.
Кстати, str_replace может принимать в аргументах массивы, чтобы не писать несколько вызовов подряд.
Блог ГО

Оффлайн Сергей Иванов

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 24
  • +0/-0
  • 0
    • Просмотр профиля
    • http://chubee.ru
Можно ли короче?
« Ответ #2 : 11 Мая 2006, 15:39:32 »
спасибо, Брат! как отрадно встретить человека, которому тоже небезразличен фактор красоты в таком казалось бы абсолютно безжизненном занятии как кодинг. значит мы с тобой живые

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28