标题说明了一切。
我应该在htmlspecialchars();
标记中加入<a>
函数吗?
由于
答案 0 :(得分:4)
htmlspecialchars
是一个函数,用于转义某些在HTML中具有特殊含义的字符。例如,如果要在HTML属性中嵌入包含引号的值:
<a title="Simon says "Hello World"">
这显然打破了HTML语法。您需要将转义函数应用于值Simon says "Hello World"
以获得:
<a title="Simon says "Hello World"">
现在这是正确的HTML语法。
普通文本中包含<
或>
的值也是如此,因为这些值显然可以解释为HTML标记。有关该主题的更多信息,请阅读The Great Escapism (Or: What You Need To Know To Work With Text Within Text)。
您需要以相同的方式对所有 HTML标记和值执行此操作。
printf('<a href="%s" title="%s">%s</a>',
htmlspecialchars($url),
htmlspecialchars($title),
htmlspecialchars($content));
网址有自己的转义规则,在将其放入HTML之前,您可能需要对放入网址的值进行URL编码:
$url = sprintf('/foo/%s', urlencode($bar));
printf('<a href="%s">...</a>', htmlspecialchars($url));