PHP как да премахнете HTML тагове от текста
Проверка и обработка на постъпващата информация е един от най-често срещаните проблеми в програмирането. PHP език често се използва за уеб приложения, така че не е най-спешно премахване на HTML тагове в текста, защото те са най-изложени на извън инжекция. В тази статия, аз искам да ви напомня за един стар човек stip_tags () и чипове, както и да се предложат решения за отстраняване на секцията на HTML тагове, както и още няколко полезни бонуси след това.
И така. Нашият основен инструмент за премахване на HTML тагове от текста на функция strip_tags (). Ние го предават стойности низ, и така ще бъдат спрени HTML и PHP тагове, например:
Този пример ще изведе:
Ал. Друг текст.
Трябва да се отбележи тук е, че функцията е достъпна, а втората (по желание, но е полезно) параметър, чиято стойност е низ със списък от разрешени HTML тагове, като например:
Този пример ще изведе:
Ал.
друг текст.По мое мнение, това е много удобно. Все пак, това не решава един основен проблем - премахването на секцията на HTML тагове. например: скрипт. нескриптов и стил - те са най-често срещаните. Когато имам нужда да се отстранят тези тагове, разрязани и опции, започващи с " <» и заканчивающиеся символом «> "Аз съм с помощта на следния PHP код:
Тук променливата $ р съдържа набор от регулярни изрази, както и $ R - масив, съответстващ ги замени (аз използвам пространства). Остава само да се проведе замяна низ, а ние отстраняване на отломките от текста HTML.
Очевидно е, че намалената горе две решения могат да бъдат комбинирани. В началото, аз използвам замяната чрез регулярни изрази, а след това strip_tags () и да получа различна функция nohtml ().
Накрая бих искал да ви предложим няколко полезни решения. Така че в текста трябва да бъде заменен с празен раздел, в резултат на тълкуването на двамата са идентични в браузъра, и проблемът ще бъде по-малко, например:
$ S = str_replace ( "\ т", "", $ S);
Ако нямате нужда от нови редове, те могат да бъдат заменени с интервали, например:
$ S = str_replace (масив ( "\ N", "\ R"), "", $ S);
От допълнителните пространства могат да бъдат премахнати чрез прост регулярен израз, например:
$ S = preg_replace ( "/ \ S + /", '', $ S);
$ S = подреден ($ S); // няма да бъде излишно
На тази имам всичко. Благодаря ви за вниманието. На добър час!