За последние 24 часа нас посетили 22406 программистов и 1139 роботов. Сейчас ищут 565 программистов ...

Спецы по Perl есть ? (помогите)

Тема в разделе "Прочее", создана пользователем Vladson, 11 янв 2008.

  1. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Давно не пытался на Perl писать, возник самый ламерский вопрос...

    Как на нём сделать это (знаю что ужас, но что поделать)
    PHP:
    1. <?php
    2. $string = str_replace(
    3.     array("\r\n", "\r", "\n", "\t"),
    4.     array('<br>', '<br>', '<br>', '[i]&[/i]nbsp; [i]&[/i]nbsp; '),
    5.     htmlspecialchars(trim($string))
    6. );
    7. ?>
     
  2. Ивашка

    Ивашка Активный пользователь

    С нами с:
    29 авг 2007
    Сообщения:
    96
    Симпатии:
    0
    Адрес:
    Щёкино/Тула
    Я конечно не специалист в Perl, но подозреваю, что более элегантного решения придумать не получится :?
    Поэтому так:
    Код (Text):
    1.  
    2. # эта функция нагло украдена с форума dklab :)
    3. sub HtmlSpecialChars($) {
    4.   my ($st)=@_;
    5.   return $st if !defined $st;
    6.   $st =~ s/&/&amp;/g;
    7.   $st =~ s/</&lt;/g;
    8.   $st =~ s/>/&gt;/g;  
    9.   $st =~ s/"/&quot;/g;
    10.   return $st;
    11. }
    12.  
    13. %replaces = (
    14.   "\r\n" => '<br>',
    15.   "\r"   => '<br>',
    16.   "\n"   => '<br>',
    17.   "\t"   => '&nbsp &nbsp '  # пришлось так запостить а иначе форум сущности не отображает
    18. );
    19.  
    20. $string =~ s/^\s+//; # ltrim()
    21. $string =~ s/\s+$//; # rtrim()
    22. $string = HtmlSpecialChars($string);
    23.  
    24. while(($find,$replace) = each(%replaces)) {
    25.   $string =~ s/$find/$replace/g; # собсно меняем
    26. }
     
  3. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
  4. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Спасибо :) в хозяйстве пригодиться.