htmlspecialchar()为什么对某些字符不起作用


htmlspecialchars() why does not work on some chars

hi我想知道,但也许我错过了一些关于htmlspecialchars()的内容,为什么这个函数不能代替所有这些html特殊字符html特殊字符列表

例如,因为我可以看到,所以字符%没有被替换

php手册说:

 '&' (ampersand) becomes '&'
    '"' (double quote) becomes '"' when ENT_NOQUOTES is not set.
    "'" (single quote) becomes ''' only when ENT_QUOTES is set.
    '<' (less than) becomes '&lt;'
    '>' (greater than) becomes '&gt;'

其他字符呢?没有功能可以全部替换?

手册告诉您需要知道的一切:

某些字符在HTML中具有特殊意义,应该如果要保留其含义,则由HTML实体表示。此函数返回一个字符串,其中包含一些转换;所做的翻译对日常网络最有用编程如果您要求所有HTML字符实体翻译后,请使用htmlentities()

此功能可用于防止用户提供的文本包含HTML标记,例如在留言板或留言簿中应用

执行的翻译为:

  • "&"(与号(变为"&amp;">
  • 未设置ENT_NOQUOTES时,"""(双引号(变为"&quot;">
  • 只有当设置了ENT_QUOTES时,"'"(单引号(才会变为"&#039;">
  • '<'(小于(变为'&lt;'
  • ">"(大于(变为"&gt;">