Oc-windows.ru

IT Новости из мира ПК
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Php html encode

Php html encode

(PHP 4 >= 4.3.0, PHP 5)

html_entity_decode — Преобразует HTML сущности в соответствующие символы

Описание string html_entity_decode ( string string [, int quote_style [, string charset]] )

Необязательный аргумент quote_style позволяет указать способ обработки ‘одиночных’ и «двойных» кавычек. Значением этого аргумента может быть одна из трех следующих констант (по умолчанию ENT_COMPAT ):

Таблица 1. Константы quote_style

Имя константыОписание
ENT_COMPATПреобразуются двойные кавычки, одиночные остаются без изменений.
ENT_QUOTESПреобразуются и двойные, и одиночные кавычки.
ENT_NOQUOTESИ двойные, и одиночные кавычки остаются без изменений.

Необязательный третий аргумент charset определяет кодировку, используемую при преобразовании. По умолчанию используется кодировка ISO-8859-1.

Начиная с PHP 4.3.0 поддерживаются следующие кодировки.

Таблица 2. Поддерживаемые кодировки

КодировкаПсевдонимыОписание
ISO-8859-1ISO8859-1Западно-европейская Latin-1
ISO-8859-15ISO8859-15Западно-европейская Latin-9. Добавляет знак евро, французские и финские буквы к кодировке Latin-1(ISO-8859-1).
UTF-88-битная Unicode, совместимая с ASCII.
cp866ibm866, 866Кириллическая кодировка, применяемая в DOS. Поддерживается в версии 4.3.2.
cp1251Windows-1251, win-1251, 1251Кириллическая кодировка, применяемая в Windows. Поддерживается в версии 4.3.2.
cp1252Windows-1252, 1252Западно-европейская кодировка, применяемая в Windows.
KOI8-Rkoi8-ru, koi8rРусская кодировка. Поддерживается в версии 4.3.2.
BIG5950Традиционный китайский, применяется в основном на Тайване.
GB2312936Упрощенный китайский, стандартная национальная кодировка.
BIG5-HKSCSРасширенная Big5, применяемая в Гонг-Конге.
Shift_JISSJIS, 932Японская кодировка.
EUC-JPEUCJPЯпонская кодировка.

Замечание: Не перечисленные выше кодировки не поддерживаются, и вместо них применяется ISO-8859-1.

Пример 1. Декодирование HTML сущностей

= «I’ll «walk» the dog now» ;

$a = htmlentities ( $orig );

$b = html_entity_decode ( $a );

echo $a ; // I’ll «walk» the dog now

echo $b ; // I’ll «walk» the dog now

// в версиях до PHP 4.3.0 можно сделать так:
function unhtmlentities ( $string )
<
$trans_tbl = get_html_translation_table ( HTML_ENTITIES );
$trans_tbl = array_flip ( $trans_tbl );
return strtr ( $string , $trans_tbl );
>

$c = unhtmlentities ( $a );

echo $c ; // I’ll «walk» the dog now

Замечание: Может показаться странным, что результатом вызова trim(html_entity_decode(‘ ‘)); не является пустая строка Причина том, что ‘ ‘ преобразуется не в символ с ASCII-кодом 32 (который удаляется функцией trim() ),а в символ с ASCII-кодом 160 (0xa0) в принимаемой по умолчанию кодировке ISO-8859-1.

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

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

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

Описание

html_entity_decode() является противоположностью функции htmlentities() . Она преобразует все HTML-сущности в строке string в соответствующие символы.

Если быть точнее, то эта функция преобразует все сущности (в том числе все числовые сущности), которые а) обязательно верны для выбранного типа документа — то есть, для XML, эта функция не преобразует именованные сущности, которые могут быть определены в каком-нибудь DTD — и б) их символы находятся в кодировке соответвующей с выбранной кодировкой и разрешены в выбранном типе документа. Все другие сущности остаются без изменений. набор, связанный с выбранной кодировкой и разрешается в выбранном тип документа. Все другие субъекты, которые оставили как есть.

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

Битовая маска, состоящая из одного или более флагов, которые указывают как обращаться с кавычками и какой тип документа использовать. По умолчанию маска принимает значение ENT_COMPAT | ENT_HTML401.

Константы flags

Имя константыОписание
ENT_COMPATПреобразуются двойные кавычки, одиночные остаются без изменений.
ENT_QUOTESПреобразуются и двойные, и одиночные кавычки.
ENT_NOQUOTESИ двойные, и одиночные кавычки остаются без изменений.
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-1ISO8859-1Западно-европейская Latin-1.
ISO-8859-5ISO8859-5Редко используемая кириллическая кодировка (Latin/Cyrillic).
ISO-8859-15ISO8859-15Западно-европейская Latin-9. Добавляет знак евро, французские и финские буквы к кодировке Latin-1(ISO-8859-1).
UTF-88-битная Unicode, совместимая с ASCII.
cp866ibm866, 866Кириллическая кодировка, применяемая в DOS.
cp1251Windows-1251, win-1251, 1251Кириллическая кодировка, применяемая в Windows.
cp1252Windows-1252, 1252Западно-европейская кодировка, применяемая в Windows.
KOI8-Rkoi8-ru, koi8rРусская кодировка.
BIG5950Традиционный китайский, применяется в основном на Тайване.
GB2312936Упрощенный китайский, стандартная национальная кодировка.
BIG5-HKSCSРасширенная Big5, применяемая в Гонг-Конге.
Shift_JISSJIS, SJIS-win, cp932, 932Японская кодировка.
EUC-JPEUCJP, eucJP-winЯпонская кодировка.
MacRomanКодировка, используемая в Mac OS.
»Пустая строка активирует режим определения кодировки из файла скрипта (Zend multibyte), default_charset и текущей локали (см. nl_langinfo() и setlocale() ), в указанном порядке. Не рекомендуется к использованию.

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

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

Возвращает раскодированную строку.

Список изменений

ВерсияОписание
5.6.0Значение по умолчанию для параметра encoding было изменено на значение конфигурационной опции default_charset.
5.4.0Кодировка по умолчанию сменилась с ISO-8859-1 на UTF-8.
5.4.0Были добавлены константы ENT_HTML401 , ENT_XML1 , ENT_XHTML и ENT_HTML5 .

Примеры

Пример #1 Декодирование HTML-сущностей

= «I’ll «walk» the dog now» ;

$a = htmlentities ( $orig );

$b = html_entity_decode ( $a );

echo $a ; // I’ll «walk» the dog now

echo $b ; // I’ll «walk» the dog now
?>

Примечания

Может показаться странным, что результатом вызова trim(html_entity_decode(‘ ‘)); не является пустая строка. Причина том, что ‘ ‘ преобразуется не в символ с ASCII-кодом 32 (который удаляется функцией trim() ),а в символ с ASCII-кодом 160 (0xa0) в принимаемой по умолчанию кодировке ISO-8859-1.

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

  • htmlentities() — Преобразует все возможные символы в соответствующие HTML-сущности
  • htmlspecialchars() — Преобразует специальные символы в HTML-сущности
  • get_html_translation_table() — Возвращает таблицу преобразований, используемую функциями htmlspecialchars и htmlentities
  • urldecode() — Декодирование URL-кодированной строки

PHP htmlentities() Function

Example

Convert some characters to HTML entities:

The HTML output of the code above will be (View Source):

The browser output of the code above will be:

Definition and Usage

The htmlentities() function converts characters to HTML entities.

Tip: To convert HTML entities back to characters, use the html_entity_decode() function.

Tip: Use the get_html_translation_table() function to return the translation table used by htmlentities().

Syntax

Parameter Values

ParameterDescription
stringRequired. Specifies the string to convert
flagsOptional. Specifies how to handle quotes, invalid encoding and the used document type.

The available quote styles are:

  • ENT_COMPAT — Default. Encodes only double quotes
  • ENT_QUOTES — Encodes double and single quotes
  • ENT_NOQUOTES — Does not encode any quotes
  • ENT_IGNORE — Ignores invalid encoding instead of having the function return an empty string. Should be avoided, as it may have security implications.
  • ENT_SUBSTITUTE — Replaces invalid encoding for a specified character set with a Unicode Replacement Character U+FFFD (UTF-8) or &#FFFD; instead of returning an empty string.
  • ENT_DISALLOWED — Replaces code points that are invalid in the specified doctype with a Unicode Replacement Character U+FFFD (UTF-8) or &#FFFD;

Additional flags for specifying the used doctype:

  • ENT_HTML401 — Default. Handle code as HTML 4.01
  • ENT_HTML5 — Handle code as HTML 5
  • ENT_XML1 — Handle code as XML 1
  • ENT_XHTML — Handle code as XHTML
character-setOptional. A string that specifies which character-set to use.

Allowed values are:

  • UTF-8 — Default. ASCII compatible multi-byte 8-bit Unicode
  • ISO-8859-1 — Western European
  • ISO-8859-15 — Western European (adds the Euro sign + French and Finnish letters missing in ISO-8859-1)
  • cp866 — DOS-specific Cyrillic charset
  • cp1251 — Windows-specific Cyrillic charset
  • cp1252 — Windows specific charset for Western European
  • KOI8-R — Russian
  • BIG5 — Traditional Chinese, mainly used in Taiwan
  • GB2312 — Simplified Chinese, national standard character set
  • BIG5-HKSCS — Big5 with Hong Kong extensions
  • Shift_JIS — Japanese
  • EUC-JP — Japanese
  • MacRoman — Character-set that was used by Mac OS

Note: Unrecognized character-sets will be ignored and replaced by ISO-8859-1 in versions prior to PHP 5.4. As of PHP 5.4, it will be ignored an replaced by UTF-8.

double_encodeOptional. A boolean value that specifies whether to encode existing html entities or not.

  • TRUE — Default. Will convert everything
  • FALSE — Will not encode existing html entities

Technical Details

Return Value:Returns the converted string. However, if the string parameter contains invalid encoding, it will return an empty string, unless either the ENT_IGNORE or ENT_SUBSTITUTE flags are set
PHP Version:4+
Changelog:PHP 5.6 — Changed the default value for the character-set parameter to the value of the default charset (in configuration).
PHP 5.4 — Changed the default value for the character-set parameter to UTF-8.
PHP 5.4 — Added ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_HTML5, ENT_XML1 and ENT_XHTML
PHP 5.3 — Added ENT_IGNORE constant.
PHP 5.2.3 — Added the double_encode parameter.
PHP 4.1 — Added the character-set parameter.

More Examples

Example

Convert some characters to HTML entities:

The HTML output of the code above will be (View Source):

The browser output of the code above will be:

Example

Convert some characters to HTML entities using the Western European character-set:

The HTML output of the code above will be (View Source):

htmlentities

(PHP 4, PHP 5, PHP 7)

htmlentities — Преобразует все возможные символы в соответствующие HTML-сущности

Описание

Эта функция идентична htmlspecialchars() за исключением того, что htmlentities() преобразует все символы в соответствующие HTML-сущности (для тех символов, для которых HTML-сущности существуют).

Если же вы хотите раскодировать строку (наоборот), используйте html_entity_decode() .

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

Битовая маска из нижеуказанных флагов, определяющих режим обработки кавычек, некорректных кодовых последовательностей и используемый тип документа. По умолчанию используется ENT_COMPAT | ENT_HTML401.

Доступные значения параметра flags

Название константыОписание
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-1ISO8859-1Западно-европейская Latin-1.
ISO-8859-5ISO8859-5Редко используемая кириллическая кодировка (Latin/Cyrillic).
ISO-8859-15ISO8859-15Западно-европейская Latin-9. Добавляет знак евро, французские и финские буквы к кодировке Latin-1 (ISO-8859-1).
UTF-88-битная Unicode, совместимая с ASCII.
cp866ibm866, 866Кириллическая кодировка, применяемая в DOS.
cp1251Windows-1251, win-1251, 1251Кириллическая кодировка, применяемая в Windows.
cp1252Windows-1252, 1252Западно-европейская кодировка, применяемая в Windows.
KOI8-Rkoi8-ru, koi8rРусская кодировка.
BIG5950Традиционный китайский, применяется в основном на Тайване.
GB2312936Упрощенный китайский, стандартная национальная кодировка.
BIG5-HKSCSРасширенная Big5, применяемая в Гонконге.
Shift_JISSJIS, SJIS-win, cp932, 932Японская кодировка.
EUC-JPEUCJP, 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Добавлены константы 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 bold
echo htmlentities ( $str );

// выводит: A ‘quote’ is bold
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-кодирование строки
Читать еще:  Php get object properties
Ссылка на основную публикацию
Adblock
detector