如果我有一个UTF-8字符串并希望用HTML <br>
替换换行符,这样安全吗?
$var = str_replace("\r\n", "<br>", $var);
我知道str_replace不是UTF-8安全的,但也许我可以逃脱这个。我问,因为没有mb_strreplace函数。
答案 0 :(得分:16)
UTF-8的设计使得多字节序列永远不会包含任何看起来像ASCII字符的内容。也就是说,只要遇到值为0-127的字节,就可以安全地将其视为ASCII字符。
这意味着只要您尝试用ASCII字符替换ASCII字符,str_replace
应该是安全的。
答案 1 :(得分:7)
str_replace()
对任何ascii-safe字符都是安全的。
答案 2 :(得分:1)
1st:在代码中使用代码示例标记。
第二名:是的,这是保存。
第三:它可能不是你想要的。这可能更好:$var = str_replace(array("\r\n", "\n", "\r"), "<br/>", $var);
不要忘记不同的操作系统处理不同的换行符。上面的代码应该替换所有换行符,无论它们来自何处。