htmlspecialchars($string, ENT_NOQUOTES);

...大约是 2.5 倍 比:
str_replace(array('&', '<', '>'), array('&amp;', '&lt;', '&gt;'), $string);

htmlspecialchars 是否做了一些 str_replace 线没有做的事情?

附言我使用 microtime 在 PHP 5.4 中测量了速度。

最佳答案

str_replace() 将字符串视为 ASCII C 字符串。 htmlspecialchars() 没有。 (如果没记错的话,在 php 5.4 中默认是 UTF8 字符串。)

此外,在 htmlspecialchars() 中有代码以避免双重编码等。它做了更多的事情。

关于php - 为什么 "htmlspecialchars"这么慢?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16384515/

10-12 18:57