htmlspecialchars($string, ENT_NOQUOTES);
...大约比以下速度慢2.5 倍:
str_replace(array('&', '<', '>'), array('&', '<', '>'), $string);
做htmlspecialchars
一些str_replace
线路没有做的事情吗?
ps 我在 PHP 5.4 中测量了速度,使用microtime
.
htmlspecialchars($string, ENT_NOQUOTES);
...大约比以下速度慢2.5 倍:
str_replace(array('&', '<', '>'), array('&', '<', '>'), $string);
做htmlspecialchars
一些str_replace
线路没有做的事情吗?
ps 我在 PHP 5.4 中测量了速度,使用microtime
.
str_replace()
将字符串视为 ASCII C 字符串。htmlspecialchars()
才不是。(如果没有记错的话,在 php 5.4 中默认是 UTF8 字符串。)
此外,还有htmlspecialchars()
避免双重编码等的代码。它做了更多的事情。
查看文档。
它较慢的原因是因为它做得更多。它处理各种引号、编码和双重编码。
使用编码可能会很慢。因为计算机速度非常快,所以它应该没什么大不了的,但是如果你将它与简单的搜索和替换(基本上都是str_replace
这样)进行比较,它会更慢。
文档说明htmlspecialchars()
有一个参数,您可以在其中输入要使用的字符集,并且默认情况下它还会对所有内容进行两次编码。