我应该在<a> tag</a>内使用htmlspecialchars吗?

时间:2014-06-26 11:20:47

标签: php html htmlspecialchars

标题说明了一切。

我应该在htmlspecialchars();标记中加入<a>函数吗?

由于

1 个答案:

答案 0 :(得分:4)

htmlspecialchars是一个函数,用于转义某些在HTML中具有特殊含义的字符。例如,如果要在HTML属性中嵌入包含引号的值:

<a title="Simon says "Hello World"">

这显然打破了HTML语法。您需要将转义函数应用于值Simon says "Hello World"以获得:

<a title="Simon says &quot;Hello World&quot;">

现在这是正确的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));