php альтернатива strip_tags, которая позволяет & lt ;, & lt; =, & gt; =, & gt; в SQL — регулярное выражение?

Я использую wp-db.php на не WordPress сайте, который позволяет использовать функцию apply_filters. Я изначально сделал это:

function apply_filters($type, $input) {
return strip_tags($input);
}

Я хочу, чтобы остановить сохранение HTML. Я думал, что я решил проблему, но потом заметил, что SQL-запросы, которые включают в себя такие вещи, как <= не работал

Я хочу удалить теги, начинающиеся с символа, например, <b... но если после скобки есть пробел или знак равенства, например < или же <= тогда это не должно удалить это.

Я нашел этот код, но он не работает так, как я хочу:

preg_replace('/<[^>]*>/', '', $input);

например

<b>test</b> abc <= def < ok? ilj >= xyz >

возвращается как:

test abc = xyz >

это должно только удалить <x...> где х не пробел или знак равенства и удалить </....>

Кстати, я заметил, что < скрипт> не работает, так что я думаю, что это нормально для < с пробелом после пребывания.

0

Решение

Вы можете использовать некоторую строку preg_match для выполнения операции. Но не уверен, что он будет работать на всех пользовательских строках. Таким образом, вы можете использовать htmlspecialchars функция, которая изменит

           &gt; is >

&lt; is <

Вы можете узнать больше о функции здесь

http://www.w3schools.com/html/html_entities.asp

После этого примените strip_tags чем это будет работать для вас.

Таким образом, вы должны пойти с функцией preg_match. Попробуй это.

     preg_replace("# <(?![/a-z]) | (?<=\s)>(?![a-z]) #exi", "htmlentities('$0')", $html);
0

Другие решения

Действителен только первый тег:

<b>1</b> <0b>2</0b> < b>3</ > <'b>4</'b> <(>5</(> <=>6</=>

Это не жадное регулярное выражение удаляет допустимые и закрывающие теги:

/<[^(=\d' )].*?>

в php:

preg_replace('/<[^(=\d\' )].*?>/', '', $input);

Увидеть https://regex101.com/

У меня были другие теги из-за sql, как:

col1 < 10
col2 <10
col3 <'2010-10-10'
col4 <(SELECT col5...)
col5 <=20
0

По вопросам рекламы [email protected]