- htmlentities
- Список параметров
- Возвращаемые значения
- Список изменений
- Примеры
- Смотрите также
- Remove HTML Tags In PHP & MYSQL (Simple Example)
- TLDR – QUICK SLIDES
- TABLE OF CONTENTS
- REMOVE HTML TAGS
- 1) DUMMY REVIEW TABLE
- 2) REMOVE HTML TAGS WITH PHP
- 3) ALTERNATIVE – STORED MYSQL FUNCTION
- 3A) STRIP TAGS MYSQL FUNCTION
- 3B) USING MYSQL STRIP TAGS
- DOWNLOAD & NOTES
- SUPPORT
- EXAMPLE CODE DOWNLOAD
- EXTRA BITS & LINKS
- LINKS & REFERENCES
- TUTORIAL VIDEO
- INFOGRAPHIC CHEAT SHEET
- THE END
- Leave a Comment Cancel Reply
- Search
- Breakthrough Javascript
- Socials
- About Me
htmlentities
Эта функция идентична htmlspecialchars() за исключением того, что htmlentities() преобразует все символы в соответствющие HTML-сущности (для тех символов, для которых HTML сущности существуют).
Если же вы хотите раскодировать строку (наоборот), используйте html_entity_decode() .
Список параметров
Битовая маска из нижеуказанных флагов, определяющих режим обработки кавычек, некорректных кодовых последовательностей и используемый тип документа. По умолчанию используется ENT_COMPAT | ENT_HTML401.
Название константы | Описание |
---|---|
ENT_COMPAT | Преобразует двойные кавычки, одинарные кавычки не изменяются. |
ENT_QUOTES | Преобразует как двойные, так и одинарные кавычки. |
ENT_NOQUOTES | Оставляет без изменения как двойные, так и одинарные кавычки. |
ENT_IGNORE | Молча отбрасывает некорректные кодовые последовательности вместо возврата пустой строки. Использование этого флага не рекомендуется, так как это » может внести уязвимости в ваш код. |
ENT_SUBSTITUTE | Заменяет некорректные кодовые последовательности символом замены Юникода U+FFFD в случае использования UTF-8 и &#FFFD; при использовании другой кодировки, вместо возврата пустой строки. |
ENT_DISALLOWED | Заменяет неверные коды символов для заданного типа документа символом замены юникода U+FFFD (UTF-8) или &#FFFD; (при использовании другой кодировки) вместо того, чтобы оставлять все как есть. Это может быть полезно, например, для того, чтобы убедиться в формальной правильности XML-документов со встроенным внешним контентом. |
ENT_HTML401 | Обработка кода в соответствии с HTML 4.01. |
ENT_XML1 | Обработка кода в соответствии с XML 1. |
ENT_XHTML | Обработка кода в соответствии с XHTML. |
ENT_HTML5 | Обработка кода в соответствии с HTML 5. |
Необязательный аргумент определяющий кодировку, используемую при конвертации симоволов.
Если не указан, то значением по умолчанию для encoding зависит от используемой версии PHP. В PHP 5.6 и старше, для значения по умолчанию используется конфигурационная опция default_charset. В PHP 5.4 и 5.5 используется UTF-8 по умолчанию. Более ранние версии PHP используют ISO-8859-1.
Хотя этот аргумент является технически необязательным, настоятельно рекомендуется указать правильное значение для вашего кода, если вы используете PHP 5.5 или выше, или если ваша опция конфигурации 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 недопустимой последовательности символов в заданной кодировке encoding будет возвращена пустая строка, если не установлены флаги ENT_IGNORE или ENT_SUBSTITUTE .
Список изменений
Версия | Описание |
---|---|
5.6.0 | Значение по умолчанию для параметра encoding было изменено на значение конфигурационной опции default_charset. |
5.4.0 | Значение по умолчанию для параметра encoding было изменено на UTF-8. |
5.4.0 | The constants ENT_SUBSTITUTE , ENT_DISALLOWED , ENT_HTML401 , ENT_XML1 , ENT_XHTML и ENT_HTML5 . |
5.3.0 | Добавлена константа ENT_IGNORE . |
5.2.3 | Добавлен параметр double_encode . |
Примеры
Пример #1 Пример использования htmlentities()
// выводит: A ‘quote’ is <b>bold</b>
echo htmlentities ( $str );
// выводит: A 'quote' is <b>bold</b>
echo htmlentities ( $str , ENT_QUOTES );
?>
Пример #2 Использование ENT_IGNORE
// Выводит пустую строку
echo htmlentities ( $str , ENT_QUOTES , «UTF-8» );
// Выводит «. »
echo htmlentities ( $str , ENT_QUOTES | ENT_IGNORE , «UTF-8» );
?>
Смотрите также
- html_entity_decode() — Преобразует все HTML-сущности в соответствующие символы
- get_html_translation_table() — Возвращает таблицу преобразований, используемую функциями htmlspecialchars и htmlentities
- htmlspecialchars() — Преобразует специальные символы в HTML-сущности
- nl2br() — Вставляет HTML-код разрыва строки перед каждым переводом строки
- urlencode() — URL-кодирование строки
Remove HTML Tags In PHP & MYSQL (Simple Example)
Welcome to a tutorial on how to remove HTML tags in PHP and MySQL. So you have completed your comments system, forum, review, or whatever that accepts user feedback. But there is one problem – Bad guys are abusing it by adding all sorts of funky HTML and script tags.
To remove HTML tags in PHP, we can either use the strip_tags() or htmlentities() function:
- The strip_tags() function will remove all HTML tags. For example, $clean = strip_tags(«
Foo
Bar»); will result in Foo Bar .
- The htmlentities() function will not remove but convert all symbols into HTML entities. For example, $clean = htmlentities(«
Foo
«); will result in <p>Foo</p>
That covers the basics, but let us walk through a few examples in this guide, read on!
TLDR – QUICK SLIDES
TABLE OF CONTENTS
REMOVE HTML TAGS
All right, let us now get into the examples of how to remove HTML tags in PHP and MySQL.
1) DUMMY REVIEW TABLE
CREATE TABLE `reviews` ( `review_id` bigint(20) NOT NULL, `review_name` varchar(255) NOT NULL, `review_text` text NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ALTER TABLE `reviews` ADD PRIMARY KEY (`review_id`); ALTER TABLE `reviews` MODIFY `review_id` bigint(20) NOT NULL AUTO_INCREMENT;
- review_id ID, primary key.
- review_name Name of reviewer.
- review_text The review itself.
2) REMOVE HTML TAGS WITH PHP
"Le Hackr", "text" => "Good product! Foo Bar
". "" ]; // (B) CONNECT TO DATABASE - CHANGE SETTINGS TO YOUR OWN ! $dbhost = "127.0.0.1"; $dbname = "test"; $dbuser = "root"; $dbpass = ""; $dbchar = "utf8mb4"; $pdo = new PDO( "mysql:host=$dbhost;dbname=$dbname;charset=$dbchar", $dbuser, $dbpass, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC ]); // (C) INSERT SQL $stmt = $pdo->prepare("INSERT INTO `reviews` (`review_name`, `review_text`) VALUES (. )"); // (C1) STRIP ALL HTML TAGS echo $stmt->execute([$_POST["name"], strip_tags($_POST["text"])]) ? "OK" : "ERROR!" ; // (C2) STRIP HTML TAGS (BUT SELECTIVELY ALLOW SOME) echo $stmt->execute([$_POST["name"], strip_tags($_POST["text"], "")]) ? "OK" : "ERROR!" ; // (C3) ALLOW HTML BUT CONVERT TO HTML ENTITIES echo $stmt->execute([$_POST["name"], htmlentities($_POST["text"]) ]) ? "OK" : "ERROR!" ;
- We can use strip_tags(STRING) to remove all HTML tags from a string.
- To allow some tags, we can pass in a second parameter – strip_tags(STRING, ALLOWED) .
- If you are creating a coding website that allows users to share their code snippets, use htmlentities(STRING) instead.
3) ALTERNATIVE – STORED MYSQL FUNCTION
3A) STRIP TAGS MYSQL FUNCTION
DELIMITER $$ CREATE FUNCTION `strip_tags`($str text) RETURNS text DETERMINISTIC BEGIN DECLARE $start, $end INT DEFAULT 1; LOOP SET $start = LOCATE("", $str, $start); IF (!$end) THEN SET $end = $start; END IF; SET $str = INSERT($str, $start, $end - $start + 1, ""); END LOOP; END$$ DELIMITER ;
Credits to the contributors on this post on StackOverflow. If you have not already heard about it, yes, we can create and store our own custom functions in MySQL (we also call them procedures).
3B) USING MYSQL STRIP TAGS
INSERT INTO `reviews` (`review_name`, `review_text`) VALUES ('Jane Doe', strip_tags('Hello world foo bar'));
Then, we can use the custom strip_tags() function in our SQL statements.
DOWNLOAD & NOTES
Here is the download link to the example code, so you don’t have to copy-paste everything.
SUPPORT
600+ free tutorials & projects on Code Boxx and still growing. I insist on not turning Code Boxx into a «paid scripts and courses» business, so every little bit of support helps.
EXAMPLE CODE DOWNLOAD
Click here for the source code on GitHub gist, just click on “download zip” or do a git clone. I have released it under the MIT license, so feel free to build on top of it or use it in your own project.
EXTRA BITS & LINKS
That’s all for this tutorial, and here is a small section on some extras and links that may be useful to you.
LINKS & REFERENCES
TUTORIAL VIDEO
INFOGRAPHIC CHEAT SHEET
THE END
Thank you for reading, and we have come to the end of this guide. I hope that it has helped you with your project, and if you want to share anything with this guide, please feel free to comment below. Good luck and happy coding!
Leave a Comment Cancel Reply
Search
Breakthrough Javascript
Take pictures with the webcam, voice commands, video calls, GPS, NFC. Yes, all possible with Javascript — Check out Breakthrough Javascript!
Socials
About Me
W.S. Toh is a senior web developer and SEO practitioner with over 20 years of experience. Graduated from the University of London. When not secretly being an evil tech ninja, he enjoys photography and working on DIY projects.
Code Boxx participates in the eBay Partner Network, an affiliate program designed for sites to earn commission fees by linking to ebay.com. We also participate in affiliate programs with Bluehost, ShareASale, Clickbank, and other sites. We are compensated for referring traffic.