В чем разница между htmlspecialchars() и htmlentities(). Когда я должен использовать тот или иной?






Из документации PHP для htmlentities:
This function is identical to
htmlspecialchars()in all ways, except withhtmlentities(), all characters which have HTML character entity equivalents are translated into these entities.
Из документации PHP для htmlspecialchars:
Certain characters have special significance in HTML, and should be represented by HTML entities if they are to preserve their meanings. This function returns a string with some of these conversions made; the translations made are those most useful for everyday web programming. If you require all HTML character entities to be translated, use
htmlentities()instead.
Разница в том, что кодируется. Возможные варианты: все (объекты) или «специальные» символы, такие как амперсанд, двойные и одинарные кавычки, меньше и больше (специальные символы).
Я предпочитаю использовать htmlspecialchars, когда это возможно.
Например:
echo htmlentities('<Il était une fois un être>.');
// Output: <Il était une fois un être>.
// ^^^^^^^^ ^^^^^^^
echo htmlspecialchars('<Il était une fois un être>.');
// Output: <Il était une fois un être>.
// ^ ^
Просто столкнулся с проблемой из-за использования htmlentities, а не htmlspecialchars! Если ваш сайт закодирован в UTF8, специальные символы, такие как ¡™ £ ¢ ∞§¶, превращаются в маленькие черные ромбики со знаками вопроса в них, потому что htmlentities не знает, как с ними обращаться, а htmlspecialchars знает.
@Darius То, что ты говоришь, не имеет никакого смысла. htmlentities и htmlspecialchars могут обрабатывать UTF-8, если вы укажете "UTF-8" в качестве третьего аргумента.
@Artefacto На всякий случай также используйте header('Content-Type: text/html; charset=utf-8');. Это должно предотвратить неправильную интерпретацию кодировки браузером и отображение вместо этого нежелательных символов.
Начиная с PHP 5.4, UTF-8 является вариантом кодировки по умолчанию (третий аргумент).
@Darius: Мы столкнулись с чем-то похожим. Как и мы, вы, вероятно, используете PHP старше 5.4.0. Итак, исходя из комментария Джонатана, нам нужно явно указать UTF-8 следующим образом: htmlentities ($ str, ENT_QUOTES, 'UTF-8');
Дополнение от php.net: «В PHP 5.6 и новее в качестве значения по умолчанию используется параметр конфигурации default_charset».
Этот ответ не отвечает на вопрос, рекомендованный список «специальных» символов обрабатывается таким же образом, доказательство здесь: eval.in/936964
@YevgeniyAfanasyev В вашей ссылке eval.in выходные данные двух функций различаются - htmlentities кодирует последний символ, а htmlspecialchars - нет. htmlspecialchars кодирует символы, упомянутые на странице документации. htmlentities кодирует эти символы и и все остальные символы, которые можно кодировать (т. е. они имеют эквивалент объекта HTML). Другими словами, когда вы говорите, что «рекомендованный список« специальных »символов обрабатывается таким же образом» ... да, конечно, так и должно быть. Я не уверен, что вы пытаетесь доказать? Вы неправильно поняли?
@ADyson, спасибо, что обратили внимание на мой комментарий. Ответ гласит, что разница заключается в «специальных» символах. Мой минимальный воспроизводимый пример (eval.in/936964) показывает, что специальные символы кодируются одинаково в обоих случаях. Мне также удалось найти символ, который не кодируется таким же образом, но, как вы видите, это ни ampersand, ни quotes. Я считаю, что вы правы, говоря: «рекомендованный список« специальных »символов обрабатывается таким же образом», но ответ говорит об обратном.
@YevgeniyAfanasyev Я понимаю, что вы имеете в виду, в тексте в самом конце, похоже, это выражено наоборот. Но выделенный желтым текст из документации объясняет это лучше.
@ADyson, спасибо. Вот почему я проголосовал против этого ответа и проголосовал за другой. Я думаю, это не должен быть общепринятым ответом.
@ADyson, последняя часть, где формулировка перевернута, взята из последней редакции Дженни Теуниссен. Первоначальный ответ был сформулирован правильно. Отредактирую еще раз, чтобы поправить.
«Разница в том, что ... все (сущности) или все без« специальных »символов, таких как амперсанд, двойные и одинарные кавычки, меньше и больше (специальные символы)». Что?! :) Что мне не хватает? Такой высокий и принятый ответ, и такой неверный! : -o (По крайней мере, для наиболее распространенного случая, без аргументов.) И простой однострочный тест мог бы предотвратить это! Оба кодируют все перечисленные символы, которые, заметьте, тоже все HTML-объекты ... Разница не в этом, а в символах, таких как буквы с диакритическими знаками вне ASCII и т. д.
@Sz Мое редактирование отклонили 2 модератора stackoverflow.com/review/suggested-edits/21036740
Спасибо, что обратили на это мое внимание. Исправлю откатом, когда буду за компом.
я заметил одну вещь, которая может быть полезной; htmlspecialchars_decode () не конвертирует & nbsp; (код неразрывного пробела) в пробел, где, как и html_entity_decode ().
Вероятно, вы захотите использовать некоторую кодировку символов Unicode, например UTF-8 и htmlspecialchars. Поскольку любой не требуется создавать «объекты HTML» для «всех [] применимых символов» (это то, что делает htmlentities в соответствии с документацией), если это уже есть в вашем наборе символов.
Потому что:
htmlentities заменяет больше символов, чем htmlspecialchars. В этом нет необходимости, так как сценарий PHP менее эффективен, а итоговый HTML-код становится менее читаемым.htmlentities необходим только в том случае, если ваши страницы используют кодировки, такие как ASCII или LATIN-1 вместо UTF-8, и вы обрабатываете данные с кодировкой, отличной от кодировки страницы.
htmlspecialchars () выполняет минимальный объем кодирования, чтобы ваша строка не анализировалась как HTML. Это делает вашу строку более удобочитаемой, чем если бы вы использовали htmlentities () для кодирования абсолютно всего, что имеет кодировку.
htmlspecialchars может использоваться:
Когда нет необходимости кодировать все символы, имеющие свои HTML-эквиваленты.
Если вы знаете, что кодировка страницы соответствует текстовым специальным символам, зачем вам использовать htmlentities? htmlspecialchars намного проще и меньше кода для отправки клиенту.
Например:
echo htmlentities('<Il était une fois un être>.');
// Output: <Il était une fois un être>.
// ^^^^^^^^ ^^^^^^^
echo htmlspecialchars('<Il était une fois un être>.');
// Output: <Il était une fois un être>.
// ^ ^
Второй короче и не вызывает никаких проблем, если установлена кодировка ISO-8859-1.
Когда данные будут обрабатываться не только через браузер (чтобы избежать декодирования HTML-сущностей),
Если вывод - XML (см. ответ Артефакто).
htmlspecialchars ($ str, ENT_QUOTES, "UTF-8") лучше всего, если вы используете версию PHP до 5.4. ENT_QUOTES необходим для кодирования одинарных кавычек.
Я только что узнал о функции get_html_translation_table. Вы передаете ему HTML_ENTITIES или HTML_SPECIALCHARS, и он возвращает массив с символами, которые будут закодированы, и тем, как они будут закодированы.
Это полезно, когда вы хотите создать свою собственную функцию, например, чтобы заменить некоторые дополнительные символы или сделать другие волшебные вещи.
Вам следует использовать htmlspecialchars($strText, ENT_QUOTES), когда вы просто хотите, чтобы ваша строка была безопасной для XML и HTML:
Например, закодировать
Однако, если у вас также есть дополнительные символы, которые являются Юникод или необычные символы в вашем тексте, вы должны использовать htmlentities (), чтобы они правильно отображались на вашей HTML-странице.
Примечания:
вопрос в следующем: поскольку мой текст предоставляется пользователем, я не знаю, есть ли у меня там Unicode или необычные символы. почему я должен использовать htmlspecialchars в этом случае?
Это кодируется htmlentities.
implode( "\t", array_values( get_html_translation_table( HTML_ENTITIES ) ) ):
" & < >
¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ Œ œ Š š Ÿ ƒ ˆ ˜ Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ ς σ τ υ φ χ ψ ω ϑ ϒ ϖ – — ‘ ’ ‚ “ ” „ † ‡ • … ‰ ′ ″ ‹ › ‾ ⁄ € ℑ ℘ ℜ ™ ℵ ← ↑ → ↓ ↔ ↵ ⇐ ⇑ ⇒ ⇓ ⇔ ∀ ∂ ∃ ∅ ∇ ∈ ∉ ∋ ∏ ∑ − ∗ √ ∝ ∞ ∠ ∧ ∨ ∩ ∪ ∫ ∴ ∼ ≅ ≈ ≠ ≡ ≤ ≥ ⊂ ⊃ ⊄ ⊆ ⊇ ⊕ ⊗ ⊥ ⋅ ⌈ ⌉ ⌊ ⌋ ⟨ ⟩ ◊ ♠ ♣ ♥ ♦
Это кодируется с помощью htmlspecialchars.
implode( "\t", array_values( get_html_translation_table( HTML_SPECIALCHARS ) ) ):
" & < >
Остерегаться! На первый взгляд, htmlentities выглядит довольно законченным. Но в нем отсутствует ряд действительно основных и распространенных персонажей (особенно, если вашим клиентам нравится MS). Умные кавычки (например, ’или & rsquo;), тире (например, - или & mdash), знак товарного знака (™ или & trade;) и многие другие приведут к возвращению значения null.
@ Джонатан, они в списке. Если вы получаете пустой результат, возможно, вы неправильно указали кодировку.
Или вы не указали кодировку и использовали значение по умолчанию, которое изменилось в PHP 5.4, а затем (возможно) снова в PHP 5.6, в зависимости от вашей конфигурации. До 2012 года в документации даже не рекомендовалось указывать параметр. Итак, если вы не указали третий параметр необязательный и обновили PHP, htmlentities сначала использовали ISO-8859-1, затем он использовал UTF-8, затем он использовал все, что есть в вашем php.ini, не выдавая ошибки ни при каких проблемах, но вместо этого тихо ничего не вернул. Ясно, что это никогда не могло привести к потере данных в какой-то момент!
В этих списках не показано (1) то, что обе функции кодируют пробелы (как% 20), и (2) то, что вы можете установить флаг (ENT_QUOTES), чтобы они также кодировали одинарные кавычки.
htmlentities - Преобразует все применимые символы в объекты HTML.
htmlspecialchars - Преобразование специальных символов в объекты HTML.
В переводах выполнены переводы символов по нижеуказанным:
Вы можете проверить следующий код для получения дополнительной информации о том, что такое htmlentities и htmlspecialchars:
Один небольшой пример, мне нужно было проиндексировать 2 имени клиента в функции:
[1] => Altisoxxce Soluxxons S.à r.l.
[5] => Joxxson & Joxxson
Первоначально я использовал $term = get_term_by('name', htmlentities($name), 'client');, в результате чего имена терминов включали только элемент массива амперсанда (&), но не элемент с акцентом. Но когда я изменил настройку переменной на htmlspecialchars, обе функции смогли запустить эту функцию. Надеюсь это поможет!
**HTML Character Entity Reference Chart at W3.org**
https://dev.w3.org/html5/html-author/charref
	


!
!
"
" "
#
#
$
$
%
%
&
& &
'
'
(
(
)
)
*
* *
+
+
,
,
.
.
/
/
:
:
;
;
<
< <
=
=
>
> >
?
?
@
@
[
[ [
\
\
]
] ]
^
^
_
_
`
` `
{
{ {
|
| | |
}
} }
 
¡
¡
¢
¢
£
£
¤
¤
¥
¥
¦
¦
§
§
¨
¨ ¨ ¨ ¨
©
© ©
ª
ª
«
«
¬
¬
­
®
® ® ®
¯
¯ ‾ ¯
°
°
±
± ± ±
²
²
³
³
´
´ ´
µ
µ
¶
¶
·
· · ·
¸
¸ ¸
¹
¹
º
º
»
»
¼
¼
½
½ ½
¾
¾
¿
¿
À
À
Á
Á
Â
Â
Ã
Ã
Ä
Ä
Å
Å
Æ
Æ
Ç
Ç
È
È
É
É
Ê
Ê
Ë
Ë
Ì
Ì
Í
Í
Î
Î
Ï
Ï
Ð
Ð
Ñ
Ñ
Ò
Ò
Ó
Ó
Ô
Ô
Õ
Õ
Ö
Ö
×
×
Ø
Ø
Ù
Ù
Ú
Ú
Û
Û
Ü
Ü
Ý
Ý
Þ
Þ
ß
ß
à
à
á
á
â
â
ã
ã
ä
ä
å
å
æ
æ
ç
ç
è
è
é
é
ê
ê
ë
ë
ì
ì
í
í
î
î
ï
ï
ð
ð
ñ
ñ
ò
ò
ó
ó
ô
ô
õ
õ
ö
ö
÷
÷ ÷
ø
ø
ù
ù
ú
ú
û
û
ü
ü
ý
ý
þ
þ
ÿ
ÿ
Ā
Ā
ā
ā
Ă
Ă
ă
ă
Ą
Ą
ą
ą
Ć
Ć
ć
ć
Ĉ
Ĉ
ĉ
ĉ
Ċ
Ċ
ċ
ċ
Č
Č
č
č
Ď
Ď
ď
ď
Đ
Đ
đ
đ
Ē
Ē
ē
ē
Ė
Ė
ė
ė
Ę
Ę
ę
ę
Ě
Ě
ě
ě
Ĝ
Ĝ
ĝ
ĝ
Ğ
Ğ
ğ
ğ
Ġ
Ġ
ġ
ġ
Ģ
Ģ
Ĥ
Ĥ
ĥ
ĥ
Ħ
Ħ
ħ
ħ
Ĩ
Ĩ
ĩ
ĩ
Ī
Ī
ī
ī
Į
Į
į
į
İ
İ
ı
ı ı
IJ
IJ
ij
ij
Ĵ
Ĵ
ĵ
ĵ
Ķ
Ķ
ķ
ķ
ĸ
ĸ
Ĺ
Ĺ
ĺ
ĺ
Ļ
Ļ
ļ
ļ
Ľ
Ľ
ľ
ľ
Ŀ
Ŀ
ŀ
ŀ
Ł
Ł
ł
ł
Ń
Ń
ń
ń
Ņ
Ņ
ņ
ņ
Ň
Ň
ň
ň
ʼn
ʼn
Ŋ
Ŋ
ŋ
ŋ
Ō
Ō
ō
ō
Ő
Ő
ő
ő
Œ
Œ
œ
œ
Ŕ
Ŕ
ŕ
ŕ
Ŗ
Ŗ
ŗ
ŗ
Ř
Ř
ř
ř
Ś
Ś
ś
ś
Ŝ
Ŝ
ŝ
ŝ
Ş
Ş
ş
ş
Š
Š
š
š
Ţ
Ţ
ţ
ţ
Ť
Ť
ť
ť
Ŧ
Ŧ
ŧ
ŧ
Ũ
Ũ
ũ
ũ
Ū
Ū
ū
ū
Ŭ
Ŭ
ŭ
ŭ
Ů
Ů
ů
ů
Ű
Ű
ű
ű
Ų
Ų
ų
ų
Ŵ
Ŵ
ŵ
ŵ
Ŷ
Ŷ
ŷ
ŷ
Ÿ
Ÿ
Ź
Ź
ź
ź
Ż
Ż
ż
ż
Ž
Ž
ž
ž
ƒ
ƒ
Ƶ
Ƶ
ǵ
ǵ
ȷ
ȷ
ˆ
ˆ
ˇ
ˇ ˇ
˘
˘ ˘
˙
˙ ˙
˚
˚
˛
˛
˜
˜ ˜
˝
˝ ˝
̑
̑
̲
_
Α
Α
Β
Β
Γ
Γ
Δ
Δ
Ε
Ε
Ζ
Ζ
Η
Η
Θ
Θ
Ι
Ι
Κ
Κ
Λ
Λ
Μ
Μ
Ν
Ν
Ξ
Ξ
Ο
Ο
Π
Π
Ρ
Ρ
Σ
Σ
Τ
Τ
Υ
Υ
Φ
Φ
Χ
Χ
Ψ
Ψ
Ω
Ω
α
α
β
β
γ
γ
δ
δ
ε
ϵ ϵ ε
ζ
ζ
η
η
θ
θ
ι
ι
κ
κ
λ
λ
μ
μ
ν
ν
ξ
ξ
ο
ο
π
π
ρ
ρ
ς
ς ς ς
σ
σ
τ
τ
υ
υ υ
φ
φ ϕ ϕ
χ
χ
ψ
ψ
ω
ω
ϑ
ϑ ϑ ϑ
ϒ
ϒ ϒ
ϕ
ϕ
ϖ
ϖ ϖ
Ϝ
Ϝ
ϝ
ϝ ϝ
ϰ
ϰ ϰ
ϱ
ϱ ϱ
ϵ
ε ϵ
϶
϶ ϶
Ё
Ё
Ђ
Ђ
Ѓ
Ѓ
Є
Є
Ѕ
Ѕ
І
І
Ї
Ї
Ј
Ј
Љ
Љ
Њ
Њ
Ћ
Ћ
Ќ
Ќ
Ў
Ў
Џ
Џ
А
А
Б
Б
В
В
Г
Г
Д
Д
Е
Е
Ж
Ж
З
З
И
И
Й
Й
К
К
Л
Л
М
М
Н
Н
О
О
П
П
Р
Р
С
С
Т
Т
У
У
Ф
Ф
Х
Х
Ц
Ц
Ч
Ч
Ш
Ш
Щ
Щ
Ъ
Ъ
Ы
Ы
Ь
Ь
Э
Э
Ю
Ю
Я
Я
а
а
б
б
в
в
г
г
д
д
е
е
ж
ж
з
з
и
и
й
й
к
к
л
л
м
м
н
н
о
о
п
п
р
р
с
с
т
т
у
у
ф
ф
х
х
ц
ц
ч
ч
ш
ш
щ
щ
ъ
ъ
ы
ы
ь
ь
э
э
ю
ю
я
я
ё
ё
ђ
ђ
ѓ
ѓ
є
є
ѕ
ѕ
і
і
ї
ї
ј
ј
љ
љ
њ
њ
ћ
ћ
ќ
ќ
ў
ў
џ
џ
 
 
 
 
 
 
   
   
​ ​ ​ ​ ​
‌
‍
‎
‏
‐
‐ ‐
–
–
—
—
―
―
‖
‖ ‖
‘
‘ ‘
’
’ ’ ’
‚
‚ ‚
“
“ “
”
” ” ”
„
„ „
†
†
‡
‡ ‡
•
• •
‥
‥
…
… …
‰
‰
‱
‱
′
′
″
″
‴
‴
‵
‵ ‵
‹
‹
›
›
‾
‾
⁁
⁁
⁃
⁃
⁄
⁄
⁏
⁏
⁗
⁗
 
⁠
⁡ ⁡
⁢ ⁢
⁣ ⁣
€
€
⃛
⃛ ⃛
⃜
⃜
ℂ
ℂ ℂ
℅
℅
ℊ
ℊ
ℋ
ℋ ℋ ℋ
ℌ
ℌ ℌ
ℍ
ℍ ℍ
ℎ
ℎ
ℏ
ℏ ℏ ℏ ℏ
ℐ
ℐ ℐ
ℑ
ℑ ℑ ℑ ℑ
ℒ
ℒ ℒ ℒ
ℓ
ℓ
ℕ
ℕ ℕ
№
№
℗
℗
℘
℘ ℘
ℙ
ℙ ℙ
ℚ
ℚ ℚ
ℛ
ℛ ℛ
ℜ
ℜ ℜ ℜ ℜ
ℝ
ℝ ℝ
℞
℞
™
™ ™
ℤ
ℤ ℤ
Ω
Ω
℧
℧
ℨ
ℨ ℨ
℩
℩
Å
Å
ℬ
ℬ ℬ ℬ
ℭ
ℭ ℭ
ℯ
ℯ
ℰ
ℰ ℰ
ℱ
ℱ ℱ
ℳ
ℳ ℳ ℳ
ℴ
ℴ ℴ ℴ
ℵ
ℵ ℵ
ℶ
ℶ
ℷ
ℷ
ℸ
ℸ
ⅅ
ⅅ ⅅ
ⅆ
ⅆ ⅆ
ⅇ
ⅇ ⅇ ⅇ
ⅈ
ⅈ ⅈ
⅓
⅓
⅔
⅔
⅕
⅕
⅖
⅖
⅗
⅗
⅘
⅘
⅙
⅙
⅚
⅚
⅛
⅛
⅜
⅜
⅝
⅝
⅞
⅞
←
← ← ← ← ←
↑
↑ ↑ ↑ ↑
→
→ → → → →
↓
↓ ↓ ↓ ↓
↔
↔ ↔ ↔
↕
↕ ↕ ↕
↖
↖ ↖ ↖
↗
↗ ↗ ↗
↘
↘ ↘ ↘
↙
↙ ↙ ↙
↚
↚ ↚
↛
↛ ↛
↝
↝ ↝
↞
↞ ↞
↟
↟
↠
↠ ↠
↡
↡
↢
↢ ↢
↣
↣ ↣
↤
↤ ↤
↥
↥ ↥
↦
↦ ↦ ↦
↧
↧ ↧
↩
↩ ↩
↪
↪ ↪
↫
↫ ↫
↬
↬ ↬
↭
↭ ↭
↮
↮ ↮
↰
↰ ↰
↱
↱ ↱
↲
↲
↳
↳
↵
↵
↶
↶ ↶
↷
↷ ↷
↺
↺ ↺
↻
↻ ↻
↼
↼ ↼ ↼
↽
↽ ↽ ↽
↾
↾ ↾ ↾
↿
↿ ↿ ↿
⇀
⇀ ⇀ ⇀
⇁
⇁ ⇁ ⇁
⇂
⇂ ⇂ ⇂
⇃
⇃ ⇃ ⇃
⇄
⇄ ⇄ ⇄
⇅
⇅ ⇅
⇆
⇆ ⇆ ⇆
⇇
⇇ ⇇
⇈
⇈ ⇈
⇉
⇉ ⇉
⇊
⇊ ⇊
⇋
⇋ ⇋ ⇋
⇌
⇌ ⇌ ⇌
⇍
⇍ ⇍
⇎
⇎ ⇎
⇏
⇏ ⇏
⇐
⇐ ⇐ ⇐
⇑
⇑ ⇑ ⇑
⇒
⇒ ⇒ ⇒ ⇒
⇓
⇓ ⇓ ⇓
⇔
⇔ ⇔ ⇔ ⇔
⇕
⇕ ⇕ ⇕
⇖
⇖
⇗
⇗
⇘
⇘
⇙
⇙
⇚
⇚ ⇚
⇛
⇛ ⇛
⇝
⇝
⇤
⇤ ⇤
⇥
⇥ ⇥
⇵
⇵ ⇵
⇽
⇽
⇾
⇾
⇿
⇿
∀
∀ ∀
∁
∁ ∁
∂
∂ ∂
∃
∃ ∃
∄
∄ ∄ ∄
∅
∅ ∅ ∅ ∅
∇
∇ ∇
∈
∈ ∈ ∈ ∈
∉
∉ ∉ ∉
∋
∋ ∋ ∋ ∋
∌
∌ ∌ ∌
∏
∏ ∏
∐
∐ ∐
∑
∑ ∑
−
−
∓
∓ ∓ ∓
∔
∔ ∔
∖
∖ ∖ ∖ ∖ ∖
∗
∗
∘
∘ ∘
√
√ √
∝
∝ ∝ ∝ ∝ ∝
∞
∞
∟
∟
∠
∠ ∠
∡
∡ ∡
∢
∢
∣
∣ ∣ ∣ ∣
∤
∤ ∤ ∤ ∤
∥
∥ ∥ ∥ ∥ ∥
∦
∦ ∦ ∦ ∦ ∦
∧
∧ ∧
∨
∨ ∨
∩
∩
∪
∪
∫
∫ ∫
∬
∬
∭
∭ ∭
∮
∮ ∮ ∮
∯
∯ ∯
∰
∰
∱
∱
∲
∲ ∲
∳
∳ ∳
∴
∴ ∴ ∴
∵
∵ ∵ ∵
∶
∶
∷
∷ ∷
∸
∸ ∸
∺
∺
∻
∻
∼
∼ ∼ ∼ ∼
∽
∽ ∽
∾
∾ ∾
∿
∿
≀
≀ ≀ ≀
≁
≁ ≁
≂
≂ ≂ ≂
≃
≃ ≃ ≃
≄
≄ ≄ ≄
≅
≅ ≅
≆
≆
≇
≇ ≇
≈
≈ ≈ ≈ ≈ ≈ ≈
≉
≉ ≉ ≉
≊
≊ ≊
≋
≋
≌
≌ ≌
≍
≍ ≍
≎
≎ ≎ ≎
≏
≏ ≏ ≏
≐
≐ ≐ ≐
≑
≑ ≑
≒
≒ ≒
≓
≓ ≓
≔
≔ ≔ ≔
≕
≕ ≕
≖
≖ ≖
≗
≗ ≗
≙
≙
≚
≚
≜
≜ ≜
≟
≟ ≟
≠
≠ ≠
≡
≡ ≡
≢
≢ ≢
≤
≤ ≤
≥
≥ ≥ ≥
≦
≦ ≦ ≦
≧
≧ ≧ ≧
≨
≨ ≨
≩
≩ ≩
≪
≪ ≪ ≪
≫
≫ ≫ ≫
≬
≬ ≬
≭
≭
≮
≮ ≮ ≮
≯
≯ ≯ ≯
≰
≰ ≰ ≰
≱
≱ ≱ ≱
≲
≲ ≲ ≲
≳
≳ ≳ ≳
≴
≴ ≴
≵
≵ ≵
≶
≶ ≶ ≶
≷
≷ ≷ ≷
≸
≸ ≸
≹
≹ ≹
≺
≺ ≺ ≺
≻
≻ ≻ ≻
≼
≼ ≼ ≼
≽
≽ ≽ ≽
≾
≾ ≾ ≾
≿
≿ ≿ ≿
⊀
⊀ ⊀ ⊀
⊁
⊁ ⊁ ⊁
⊂
⊂ ⊂
⊃
⊃ ⊃ ⊃
⊄
⊄
⊅
⊅
⊆
⊆ ⊆ ⊆
⊇
⊇ ⊇ ⊇
⊈
⊈ ⊈ ⊈
⊉
⊉ ⊉ ⊉
⊊
⊊ ⊊
⊋
⊋ ⊋
⊍
⊍
⊎
⊎ ⊎
⊏
⊏ ⊏ ⊏
⊐
⊐ ⊐ ⊐
⊑
⊑ ⊑ ⊑
⊒
⊒ ⊒ ⊒
⊓
⊓ ⊓
⊔
⊔ ⊔
⊕
⊕ ⊕
⊖
⊖ ⊖
⊗
⊗ ⊗
⊘
⊘
⊙
⊙ ⊙
⊚
⊚ ⊚
⊛
⊛ ⊛
⊝
⊝ ⊝
⊞
⊞ ⊞
⊟
⊟ ⊟
⊠
⊠ ⊠
⊡
⊡ ⊡
⊢
⊢ ⊢
⊣
⊣ ⊣
⊤
⊤ ⊤
⊥
⊥ ⊥ ⊥ ⊥
⊧
⊧
⊨
⊨ ⊨
⊩
⊩
⊪
⊪
⊫
⊫
⊬
⊬
⊭
⊭
⊮
⊮
⊯
⊯
⊰
⊰
⊲
⊲ ⊲ ⊲
⊳
⊳ ⊳ ⊳
⊴
⊴ ⊴ ⊴
⊵
⊵ ⊵ ⊵
⊶
⊶
⊷
⊷
⊸
⊸ ⊸
⊹
⊹
⊺
⊺ ⊺
⊻
⊻
⊽
⊽
⊾
⊾
⊿
⊿
⋀
⋀ ⋀ ⋀
⋁
⋁ ⋁ ⋁
⋂
⋂ ⋂ ⋂
⋃
⋃ ⋃ ⋃
⋄
⋄ ⋄ ⋄
⋅
⋅
⋆
⋆ ⋆
⋇
⋇ ⋇
⋈
⋈
⋉
⋉
⋊
⋊
⋋
⋋ ⋋
⋌
⋌ ⋌
⋍
⋍ ⋍
⋎
⋎ ⋎
⋏
⋏ ⋏
⋐
⋐ ⋐
⋑
⋑ ⋑
⋒
⋒
⋓
⋓
⋔
⋔ ⋔
⋕
⋕
⋖
⋖ ⋖
⋗
⋗ ⋗
⋘
⋘
⋙
⋙ ⋙
⋚
⋚ ⋚ ⋚
⋛
⋛ ⋛ ⋛
⋞
⋞ ⋞
⋟
⋟ ⋟
⋠
⋠ ⋠
⋡
⋡ ⋡
⋢
⋢ ⋢
⋣
⋣ ⋣
⋦
⋦
⋧
⋧
⋨
⋨ ⋨
⋩
⋩ ⋩
⋪
⋪ ⋪ ⋪
⋫
⋫ ⋫ ⋫
⋬
⋬ ⋬ ⋬
⋭
⋭ ⋭ ⋭
⋮
⋮
⋯
⋯
⋰
⋰
⋱
⋱
⋲
⋲
⋳
⋳
⋴
⋴
⋵
⋵
⋶
⋶
⋷
⋷
⋹
⋹
⋺
⋺
⋻
⋻
⋼
⋼
⋽
⋽
⋾
⋾
⌅
⌅ ⌅
⌆
⌆ ⌆
⌈
⌈ ⌈
⌉
⌉ ⌉
⌊
⌊ ⌊
⌋
⌋ ⌋
⌌
⌌
⌍
⌍
⌎
⌎
⌏
⌏
⌐
⌐
⌒
⌒
⌓
⌓
⌕
⌕
⌖
⌖
⌜
⌜ ⌜
⌝
⌝ ⌝
⌞
⌞ ⌞
⌟
⌟ ⌟
⌢
⌢ ⌢
⌣
⌣ ⌣
⌭
⌭
⌮
⌮
⌶
⌶
⌽
⌽
⌿
⌿
⍼
⍼
⎰
⎰ ⎰
⎱
⎱ ⎱
⎴
⎴ ⎴
⎵
⎵ ⎵
⎶
⎶
⏜
⏜
⏝
⏝
⏞
⏞
⏟
⏟
⏢
⏢
⏧
⏧
␣
␣
Ⓢ
Ⓢ Ⓢ
─
─ ─
│
│
┌
┌
┐
┐
└
└
┘
┘
├
├
┤
┤
┬
┬
┴
┴
┼
┼
═
═
║
║
╒
╒
╓
╓
╔
╔
╕
╕
╖
╖
╗
╗
╘
╘
╙
╙
╚
╚
╛
╛
╜
╜
╝
╝
╞
╞
╟
╟
╠
╠
╡
╡
╢
╢
╣
╣
╤
╤
╥
╥
╦
╦
╧
╧
╨
╨
╩
╩
╪
╪
╫
╫
╬
╬
▀
▀
▄
▄
█
█
░
░
▒
▒
▓
▓
□
□ □ □
▪
▪ ▪ ▪ ▪
▫
▫
▭
▭
▮
▮
▱
▱
△
△ △
▴
▴ ▴
▵
▵ ▵
▸
▸ ▸
▹
▹ ▹
▽
▽ ▽
▾
▾ ▾
▿
▿ ▿
◂
◂ ◂
◃
◃ ◃
◊
◊ ◊
○
○
◬
◬
◯
◯ ◯
◸
◸
◹
◹
◺
◺
◻
◻
◼
◼
★
★ ★
☆
☆
☎
☎
♀
♀
♂
♂
♠
♠ ♠
♣
♣ ♣
♥
♥ ♥
♦
♦ ♦
♪
♪
♭
♭
♮
♮ ♮
♯
♯
✓
✓ ✓
✗
✗
✠
✠ ✠
✶
✶
❘
❘
❲
❲
❳
❳
⟦
⟦ ⟦
⟧
⟧ ⟧
⟨
⟨ ⟨ ⟨
⟩
⟩ ⟩ ⟩
⟪
⟪
⟫
⟫
⟬
⟬
⟭
⟭
⟵
⟵ ⟵ ⟵
⟶
⟶ ⟶ ⟶
⟷
⟷ ⟷ ⟷
⟸
⟸ ⟸ ⟸
⟹
⟹ ⟹ ⟹
⟺
⟺ ⟺ ⟺
⟼
⟼ ⟼
⟿
⟿
⤂
⤂
⤃
⤃
⤄
⤄
⤅
⤅
⤌
⤌
⤍
⤍ ⤍
⤎
⤎
⤏
⤏ ⤏
⤐
⤐ ⤐
⤑
⤑
⤒
⤒
⤓
⤓
⤖
⤖
⤙
⤙
⤚
⤚
⤛
⤛
⤜
⤜
⤝
⤝
⤞
⤞
⤟
⤟
⤠
⤠
⤣
⤣
⤤
⤤
⤥
⤥ ⤥
⤦
⤦ ⤦
⤧
⤧
⤨
⤨ ⤨
⤩
⤩ ⤩
⤪
⤪
⤳
⤳
⤵
⤵
⤶
⤶
⤷
⤷
⤸
⤸
⤹
⤹
⤼
⤼
⤽
⤽
⥅
⥅
⥈
⥈
⥉
⥉
⥊
⥊
⥋
⥋
⥎
⥎
⥏
⥏
⥐
⥐
⥑
⥑
⥒
⥒
⥓
⥓
⥔
⥔
⥕
⥕
⥖
⥖
⥗
⥗
⥘
⥘
⥙
⥙
⥚
⥚
⥛
⥛
⥜
⥜
⥝
⥝
⥞
⥞
⥟
⥟
⥠
⥠
⥡
⥡
⥢
⥢
⥣
⥣
⥤
⥤
⥥
⥥
⥦
⥦
⥧
⥧
⥨
⥨
⥩
⥩
⥪
⥪
⥫
⥫
⥬
⥬
⥭
⥭
⥮
⥮ ⥮
⥯
⥯ ⥯
⥰
⥰
⥱
⥱
⥲
⥲
⥳
⥳
⥴
⥴
⥵
⥵
⥶
⥶
⥸
⥸
⥹
⥹
⥻
⥻
⥼
⥼
⥽
⥽
⥾
⥾
⥿
⥿
⦅
⦅
⦆
⦆
⦋
⦋
⦌
⦌
⦍
⦍
⦎
⦎
⦏
⦏
⦐
⦐
⦑
⦑
⦒
Не полностью, пожалуйста, отследите ссылку для полного документа.
Различия между htmlspecialchars () и htmlentities () очень малы. Давайте посмотрим на несколько примеров:
htmlspecialchars
htmlspecialchars (строка $ строка) принимает несколько аргументов, где первым аргументом является строка, а все остальные аргументы (определенные флаги, определенные кодировки и т. д.) Являются необязательными. htmlspecialchars преобразует специальные символы в строке в объекты HTML. Например, если у вас есть <br> в вашей строке, htmlspecialchars преобразует его в & lt; b & gt;. В то время как символы вроде µ † и т. д. Не имеют особого значения в HTML. Таким образом, они не будут преобразованы в объекты HTML функцией htmlspecialchars, как показано в приведенном ниже примере.
echo htmlspecialchars('An example <br>'); // This will print - An example < br >
echo htmlspecialchars('µ †'); // This will print - µ †
htmlentities
htmlentities (строка $ строка) очень похож на htmlspecialchars и принимает несколько аргументов, где первым аргументом является строка, а все остальные аргументы являются необязательными (определенные флаги, определенные кодировки и т. д.). В отличие от htmlspecialchars, htmlentities преобразует не только специальные символы в строке в сущности HTML, но и все применимые символы в сущности HTML.
echo htmlentities('An example <br>'); // This will print - An example < br >
echo htmlentities('µ †'); // This will print - µ †
Спасибо за ответ, но не могли бы вы по возможности подробнее рассказать о том, что вы предпочитаете
htmlspecialchars(), помимо очевидных различий? В каких ситуациях использованиеhtmlentities()вызовет проблемы, аhtmlspecialchars()- нет?