1. PHP / Говнокод #1435

    +151

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    // Защита от вставки HTML-кодов
    function filter($string)
    {
     $string=stripslashes($string); 
     $string=ereg_replace("<","&lt;",$string);
     $string=ereg_replace(">","&gt;",$string); 
     $string=ereg_replace('\\\"',"&quot;",$string);
     $string=ereg_replace("!","&#33;",$string);
     $string=ereg_replace("\r","",$string);
     $string=ereg_replace("\n","<BR>",$string);
     $string=ereg_replace("%","&#37;",$string);
     $string=ereg_replace("^ +","",$string);
     $string=ereg_replace(" +$","",$string);
     $string=ereg_replace(" +"," ",$string);
     $string=ereg_replace("\|"," ",$string);
     return $string;
    }

    Из LS Guestbook (http://linesoft.org)

    Запостил: guest, 28 Июля 2009

    Комментарии (5) RSS

    • Норм
      Ответить
    • Lander:
      htmlspecialchars выглядит получше :)
      Ответить
    • Хорошая демка, как не надо использовать регэкспы, когда не надо использовать регэкспы и какие не надо использовать регэкспы.
      Ответить
    • htmlspecialchars() + nl2br() сделают то же самое лучше и быстрее.
      Ответить
    • #4: а ещё trim() для начальных и концевых пробелов, str_replace() для пары символов, которые надо заэкранировать, и всё-таки preg_replace, чтобы удалить повторяющиеся пробелы в самом сообщении (я, по крайней мере, другого способа не знаю).
      Ответить

    Добавить комментарий