Предотвратить или очистить теги HTML / CSS - PullRequest
0 голосов
/ 06 августа 2010

Я занимаюсь разработкой веб-сайта с использованием PHP, MySQL и HTML. В базе данных одним из полей является текст, который может содержать HTML-теги, такие как, например, <b> или <i>.

Моя проблема в том, что в определенной части веб-сайта (в разделе поиска) я хочу отображать только «сводку» / подстроку этого поля.

Проблема в том, что когда я получаю часть этого поля для отображения на странице, теги, которые не являются закрытыми, влияют на способ отображения остальной части страницы.

Две вещи решили бы эту проблему:

  1. Запретить показ этих конкретных тегов;
  2. После отображения поля я хочу закрыть все «открытые теги».

Обратите внимание, что вариант номер один будет намного лучше.

Ответы [ 4 ]

2 голосов
/ 06 августа 2010

Вы можете использовать strip_tags перед отображением сводной информации для пользователя.

0 голосов
/ 04 декабря 2012

это простая в использовании функция замены preg

$search = array(


    "'<script[^>]*?>.*?</script>'si",   // strip out javascript
                    "'<[\/\!]*?[^<>]*?>'si",            // strip out html tags
                    "'([\r\n])[\s]+'",                  // strip out white space
                    "'&(quot|#34|#034|#x22);'i",        // replace html entities
                    "'&(amp|#38|#038|#x26);'i",         // added hexadecimal values
                    "'&(lt|#60|#060|#x3c);'i",
                    "'&(gt|#62|#062|#x3e);'i",
                    "'&(nbsp|#160|#xa0);'i",
                    "'&(iexcl|#161);'i",
                    "'&(cent|#162);'i",
                    "'&(pound|#163);'i",
                    "'&(copy|#169);'i",
                    "'&(reg|#174);'i",
                    "'&(deg|#176);'i",
                    "'&(#39|#039|#x27);'",
                    "'&(euro|#8364);'i",                // europe
                    "'&a(uml|UML);'",                   // german
                    "'&o(uml|UML);'",
                    "'&u(uml|UML);'",
                    "'&A(uml|UML);'",
                    "'&O(uml|UML);'",
                    "'&U(uml|UML);'",
                    "'&szlig;'i",

                    );
    $replace = array(   

                                                    "",
                        "",
                        "\\1",
                        "\"",
                        "&",
                        "<",
                        ">",
                        " ",
                        chr(161),
                        chr(162),
                        chr(163),
                        chr(169),
                        chr(174),
                        chr(176),
                        chr(39),
                        chr(128),
                        "ä",
                        "ö",
                        "ü",
                        "Ä",
                        "Ö",
                        "Ü",
                        "ß",

                    );

    $text = preg_replace($search,$replace,$yourtextasstring);
    echo $text;

используйте это и замените $ yourtextasstring на вашу строку с html text или css

скажем скажем:с html-тегами 1 ";

, если вы поставите это перед заменой preg, он покажет вам результат =" 1 "без тегов

0 голосов
/ 06 августа 2010

Я бы сделал это следующим образом ::

Функция для извлечения строки из БД вернет var $ return

$tag = strip_tags($return); // will remove tags if exist

print '<p>'$tag'</p>;
0 голосов
/ 06 августа 2010

Если строка xhtml совместима?Если это так, вы можете попробовать свернуть свою собственную функцию для сопоставления тегов и автоматически добавить закрывающие теги для них в конце.

Используйте регулярное выражение для поиска всех открывающих и закрывающих тегов в строке, затем выполните циклчерез теги.Если он встречает открывающий тег (без «/»), поместите его в стек.Если он сталкивается с закрытием, то вытолкните вершину стека.

Когда все теги будут обработаны, то, что осталось в стеке, нужно будет закрыть.Просто выталкивайте их по одному и добавляйте закрытие к задней части вашей строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...