更换换行符UTF-8安全吗?

时间:2010-10-10 22:21:04

标签: php utf-8

如果我有一个UTF-8字符串并希望用HTML <br>替换换行符,这样安全吗?

$var = str_replace("\r\n", "<br>", $var);

我知道str_replace不是UTF-8安全的,但也许我可以逃脱这个。我问,因为没有mb_strreplace函数。

3 个答案:

答案 0 :(得分:16)

UTF-8的设计使得多字节序列永远不会包含任何看起来像ASCII字符的内容。也就是说,只要遇到值为0-127的字节,就可以安全地将其视为ASCII字符。

这意味着只要您尝试用ASCII字符替换ASCII字符,str_replace应该是安全的。

答案 1 :(得分:7)

str_replace()对任何ascii-safe字符都是安全的。

不过,您还可以查看nl2br()

答案 2 :(得分:1)

1st:在代码中使用代码示例标记。

第二名:是的,这是保存。

第三:它可能不是你想要的。这可能更好:

$var = str_replace(array("\r\n", "\n", "\r"), "<br/>", $var);

不要忘记不同的操作系统处理不同的换行符。上面的代码应该替换所有换行符,无论它们来自何处。