Php htmlspecialchars()为什么对某些字符不起作用
您好,我想知道,但是可能我错过了一些关于Php htmlspecialchars()为什么对某些字符不起作用,php,htmlspecialchars,Php,Htmlspecialchars,您好,我想知道,但是可能我错过了一些关于htmlspecialchars()的内容,为什么这个函数不能替换所有这些html特殊字符 原因例如,如我所见,字符%未被替换 php手册介绍了: '&' (ampersand) becomes '&' '"' (double quote) becomes '"' when ENT_NOQUOTES is not set. "'" (single quote) becomes '
htmlspecialchars()
的内容,为什么这个函数不能替换所有这些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 '<'
'>' (greater than) becomes '>'
“&”(与号)变为“&;”
未设置ENT_NOQUOTES时,“”(双引号)变为“”。
“'”(单引号)变为“';”仅当设置了ENT_引号时。
''(大于)变成''
那么其他角色呢?没有函数可以全部替换它们?告诉您需要知道的一切:
某些字符在HTML中具有特殊意义,应
如果要保留其含义,则由HTML实体表示。
此函数返回一个字符串,其中包含一些转换;
这些翻译对日常网络最有用
编程如果您要求所有HTML字符实体都是
翻译后,请使用htmlentities()
。
此函数用于防止用户提供的文本被删除
包含HTML标记的,如在留言板或留言簿中
应用程序
执行的翻译是:
- “
”(与号)变为“&
&代码>'
- 未设置
时,“ENT\u NOQUOTES
”(双引号)变为“”
””
- “
”(单引号)变为“”
'代码>'仅当设置了
时ENT\u QUOTES
- “
”(大于)变为“
”
阅读整个手册页。这个问题非常懒惰。这是帮助防止跨站点脚本攻击的实体子集。请注意,它们中的大多数是用于构建html的字符,即对html解析器/解释器具有特殊意义的字符。这是因为%chars等不应被此函数替换。@Ispuk:不,一点也不。语言新手非常受欢迎。我们只需要基本的努力和阅读理解技能;您演示了您一直在使用手册,但您没有阅读所有手册。编程能力与此无关@重新激活,因此%chars应替换为substr_replace()之类的内容?