У меня есть php-скрипт, где пользователь вставляет свое имя. Пользователи могут вставлять все, что захотят, даже такие вещи, как <img src="...
Я хотел бы сохранить их вклад таким образом, чтобы он не показывал никакого изображения (или любого html). Я знаю, что он существует, но я не знаю, какие ключевые слова искать, чтобы найти, что он делает.
Используйте strip_tags($str)
.
htmlspecialchars()
будет кодировать текст так, чтобы теги не интерпретировались как HTML.
Самое легкое решение – это функция PHP strip_tags()
, которая делает именно то, что предлагает название, и разделяет теги HTML из строки.
Другой альтернативой является «выход» из ввода, так что символы HTML, такие как <
и >
, преобразуются в отображаемый текст. Это приведет к отображению HTML-кода.
Вы сделали бы это с помощью функции htmlentities()
.
Стоит отметить, что вход может содержать HTML-символы, фактически не предназначенные для HTML. Символ &
является зарезервированным символом HTML, но также может быть найден в обычном тексте. >
и <
реже используются в обычном тексте, но все же возможны. Все они могут вызывать проблемы при отображении на вашей странице, не обязательно являясь актуальным кодом HTML.
Решение этого, как и выше, позволяет избежать строки, используя htmlentities()
. Вы можете striptags()
запустить striptags()
, но вы также должны запустить htmlentities()
, чтобы убедиться, что строка отображается правильно.
Надеюсь, это поможет.