Удалить html символы php

Как с помощью PHP удалить символ – все способы реализации

Дата публикации: 2017-05-19

От автора: может, слов не выкинешь из песни. Но вот в PHP удалить символ проще простого. Сегодня этим и займемся.

Функциональный подход

Имеется в виду использование встроенных в ядро языка функций. Сначала используем str_replace(). Она принимает три аргумента: символ замены, заменяемый символ и исходную строку. Пример:

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Но это не единственная функция для изъятия «нежелательного» элемента из строки. Вот еще одна:

Здесь для удаления определенных частей текста применяем функцию substr(). В качестве параметров передаем ей первоначальную строку, положение, с которого нужно отсечь строку, и положение последнего знака возвращаемой подстроки.

Использование данной функции оправдано, если знаете очередность символа, который нужно изъять.

Вот еще одна функция, помогающая в решении проблемы. strstr() возвращает часть строки до или после переданного ей символа. Как от него избавиться:

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

Регулярки, потому что регулярно

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

Здесь применяется функция для работы с регулярками preg_replace(). В переданной ей строке она ищет заданный символ и меняет его на другой. В приведенном выше примере таким образом мы избавились от нулей в тексте.

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Разработка веб-приложения на PHP

Создайте веб-приложение на PHP на примере приема платежей на сайте

Источник

htmlspecialchars

(PHP 4, PHP 5, PHP 7, PHP 8)

htmlspecialchars — Преобразует специальные символы в HTML-сущности

Описание

Список параметров

Конвертируемая строка ( string ).

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

Если не указан, то значение по умолчанию для encoding зависит от конфигурационной опции default_charset.

Хотя этот аргумент является технически необязательным, настоятельно рекомендуется указать правильное значение для вашего кода, опция конфигурации default_charset может быть задана неверно для входных данных.

Читайте также:  что не должно входить в состав аптечек первой помощи

Поддерживаются следующие кодировки:

Поддерживаемые кодировки
Кодировка Псевдонимы Описание
ISO-8859-1 ISO8859-1 Западно-европейская Latin-1.
ISO-8859-5 ISO8859-5 Редко используемая кириллическая кодировка (Latin/Cyrillic).
ISO-8859-15 ISO8859-15 Западно-европейская Latin-9. Добавляет знак евро, французские и финские буквы к кодировке Latin-1 (ISO-8859-1).
UTF-8 8-битная Unicode, совместимая с ASCII.
cp866 ibm866, 866 Кириллическая кодировка, применяемая в DOS.
cp1251 Windows-1251, win-1251, 1251 Кириллическая кодировка, применяемая в Windows.
cp1252 Windows-1252, 1252 Западно-европейская кодировка, применяемая в Windows.
KOI8-R koi8-ru, koi8r Русская кодировка.
BIG5 950 Традиционный китайский, применяется в основном на Тайване.
GB2312 936 Упрощённый китайский, стандартная национальная кодировка.
BIG5-HKSCS Расширенная Big5, применяемая в Гонконге.
Shift_JIS SJIS, SJIS-win, cp932, 932 Японская кодировка.
EUC-JP EUCJP, eucJP-win Японская кодировка.
MacRoman Кодировка, используемая в Mac OS.
» Пустая строка активирует режим определения кодировки из файла скрипта (Zend multibyte), default_charset и текущей локали (смотрите nl_langinfo() и setlocale() ) в указанном порядке. Не рекомендуется к использованию.

Замечание: Остальные кодировки не поддерживаются, вместо них будет применена кодировка по умолчанию и сгенерировано предупреждение.

Если параметр double_encode выключен, то PHP не будет преобразовывать существующие html-сущности. По умолчанию преобразуется все без ограничений.

Возвращаемые значения

Преобразованная строка ( string ).

Примеры

Пример #1 Пример использования htmlspecialchars()

Источник

Как удалить html специальные символы?

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

14 ответов

как расшифровать их с помощью html_entity_decode или удалите их с помощью preg_replace :

EDIT: альтернатива согласно комментарию Jacco

было бы неплохо заменить » + » на <2,8>или что-то в этом роде. Это ограничит возможность замены всего предложения, когда unencoded ‘ & ‘ является подарок.

использовать html_entity_decode для преобразования HTML-объектов.

вам нужно установить кодировку, чтобы она работала правильно.

в дополнение к хорошим ответам выше, PHP также имеет встроенную функцию фильтра, которая довольно полезна: filter-var.

чтобы удалить символы HMTL, используйте:

$cleanString = filter_var($dirtyString, FILTER_SANITIZE_STRING);

Подробнее:

вы можете взглянуть на htmlentities () и html_entity_decode ()здесь

Это может хорошо работать для удаления специальных символов.

простой способ строки ванили сделать это, не привлекая preg regex engine:

похоже, что вы действительно хотите это:

Он заменяет именованные сущности их числовым эквивалентом.

функция, которую я использовал для выполнения задачи, присоединившись к обновлению, сделанному schnaader:

эта функция удаляет каждый HTML-тег и html-символ, преобразованный в UTF-8, готовый к сохранению в MySQL

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

html_entity_decode w / ENT_QUOTES / ENT_XML1 преобразует такие вещи, как ‘ htmlspecialchars_decode преобразует такие вещи, как & html_entity_decode преобразует такие вещи, как ‘ и strip_tags удаляет все оставшиеся теги HTML.

Источник

How to remove html special chars?

Please tell me any function which I can use to remove these special code chars from my string.

15 Answers 15

Either decode them using html_entity_decode or remove them using preg_replace :

EDIT: Alternative according to Jacco’s comment

might be nice to replace the ‘+’ with <2,8>or something. This will limit the chance of replacing entire sentences when an unencoded ‘&’ is present.

Use html_entity_decode to convert HTML entities.

You’ll need to set charset to make it work correctly.

In addition to the good answers above, PHP also has a built-in filter function that is quite useful: filter-var.

To remove HMTL characters, use:

$cleanString = filter_var($dirtyString, FILTER_SANITIZE_STRING);

More info:

You may want take a look at htmlentities() and html_entity_decode() here

This might work well to remove special characters.

A plain vanilla strings way to do it without engaging the preg regex engine:

If you want to convert the HTML special characters and not just remove them as well as strip things down and prepare for plain text this was the solution that worked for me.

html_entity_decode w/ ENT_QUOTES | ENT_XML1 converts things like ‘ htmlspecialchars_decode converts things like & html_entity_decode converts things like ‘ and strip_tags removes any HTML tags left over.

Источник

htmlspecialchars_decode

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

htmlspecialchars_decode — Преобразует специальные HTML-сущности обратно в соответствующие символы

Описание

Список параметров

Строка, которую надо преобразовать.

Возвращаемые значения

Возвращает преобразованную строку.

Примеры

Пример #1 Пример использования функции htmlspecialchars_decode()

Результат выполнения данного примера:

Смотрите также

User Contributed Notes 8 notes

The example for «htmlspecialchars_decode()» below sadly does not work for all PHP4 versions.

Quote from the PHP manual:
«get_html_translation_table() will return the translation table that is used internally for htmlspecialchars() and htmlentities().»

But it does NOT! At least not for PHP version 4.4.2.
This was already reported in a bug report (http://bugs.php.net/bug.php?id=25927), but it was marked as BOGUS.

This comment now is not to report this bug again (though I really believe it is one), but to complete the example and warn people of this pitfall.

To make sure your htmlspecialchars_decode fake for PHP4 works, you should do something like this:

This should be the best way to do it.
(Reposted because the other one seems a bit slower and because those who used the code under called it htmlspecialchars_decode_php4)

that works also with ä and » and so on.
get_html_translation_table(HTML_ENTITIES) => offers more characters than HTML_SPECIALCHARS

function htmlspecialchars_decode_PHP4($uSTR)
<
return strtr($uSTR, array_flip(get_html_translation_table(HTML_ENTITIES, ENT_QUOTES)));
>

Well, consider someone sending ‘&’ to your PHP script:

There is, unfortunately, no reliable way to determine whether HTML is escaped or not that does not come with this caveat that I know of. Rather than try and catch the case ‘I’ve already encoded this’, you are better off avoiding double-escaping by simply escaping the HTML as close to the actual output as you can muster, e.g. in the view in an MVC development structure.

If you use `htmlspecialchars()` to change things like the ampersand (&) into it’s HTML equivalent (&), you might run into a situation where you mistakenly pass the same string to the function twice, resulting in things appearing on your website like, as I call it, the ampersanded amp; «&». Clearly nobody want’s «&» on his or her web page where there is supposed to be just an ampersand. Here’s a quick and easy trick to make sure this doesn’t happen:

= «This is a string that could be passed to htmlspecialchars multiple times.» ;

?>

Now, if your dealing with text that is a mixed bag (has HTML entities and non-HTML entities) you’re on your own.

[Update of previous note, having noticed I forgot to put in quote style]

PHP4 Compatible function:

// you can do it a bunch of times, it still won’t screw you!

?>

Put it in a function. Add it to the method of some abstract data class.

For PHP4 Compatibility:

Источник

Образовательный портал