Почему strip_tags обрезает такую строку?
Неужели он не может отличить это <-+KennY+-> от html тега?
Даже не пытается. Простой state machine
А зачем вам strip_tags вообще понадобился? Ломать пользовательский ввод вы не должны, вы должны его правильно отобразить. Т.е. делать htmlspecialchars при выводе в html.
Неужели он не может отличить это <-+KennY+-> от html тега?
PHP использует только то, чем его наградили разработчики. Он не AI, который может делать всё.
strip_tags ищет открывающие (<) и закрывающие (>) части тега. Соответственно ваш "<-+KennY+->" считается тэгом.Что использовать вместо strip_tags чтобы избежать такой фигни?
Не знаю о подобных штуках, к сожалению. Попробуйте написать регулярное выражение.