嗨我想知道但也许我错过了关于htmlspecialchars()
的问题,为什么这个函数不能代替所有这个html特殊字符
html special chars list
导致例如char %
未被替换,因为我可以看到
'&' (ampersand) becomes '&'
'"' (double quote) becomes '"' when ENT_NOQUOTES is not set.
"'" (single quote) becomes ''' only when ENT_QUOTES is set.
'<' (less than) becomes '<'
'>' (greater than) becomes '>'
关于其他角色呢?没有功能可以全部替换它们吗?
答案 0 :(得分:4)
The manual告诉您需要知道的一切:
某些字符在HTML中具有特殊意义,应该是 由HTML实体表示,如果它们要保留它们的含义。 此函数返回一个字符串,其中包含一些转换; 所做的翻译是对日常网络最有用的翻译 节目。 如果您需要所有HTML字符实体 已翻译,请改用
htmlentities()
。此功能可用于防止用户提供的文本 包含HTML标记,例如在留言板或留言簿中 应用
执行的翻译是:
- '
&
'(&符号)变为“&
”- '
"
'(双引号)在未设置"
时变为“ENT_NOQUOTES
”。- “
'
”(单引号)仅在'
设置时变为“ENT_QUOTES
”。- '
<
'(小于)变为'<
'- '
>
'(大于)变为'>
'