Безопасна ли замена разрыва строки UTF-8? - PullRequest
8 голосов
/ 11 октября 2010

Если у меня есть строка UTF-8 и я хочу заменить разрывы строк на HTML <br>, это безопасно?

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

Я знаю, что str_replace не является безопасным UTF-8, но, возможно, яможет сойти с рук.Я спрашиваю, потому что нет функции mb_strreplace.

Ответы [ 3 ]

16 голосов
/ 11 октября 2010

UTF-8 разработан таким образом, что многобайтовые последовательности никогда не содержат ничего похожего на ASCII-символ. То есть каждый раз, когда вы встречаете байт со значением в диапазоне 0-127, вы можете смело предполагать, что он является символом ASCII.

И это означает, что до тех пор, пока вы пытаетесь заменить только символы ASCII на символы ASCII, str_replace должно быть безопасным.

7 голосов
/ 11 октября 2010

str_replace() безопасен для любого ascii-safe персонажа.

Кстати, вы также можете посмотреть на nl2br ()

1 голос
/ 11 октября 2010

1-й: используйте разметку примера кода для кода в своих вопросах.

2-й: Да, это сохранение.

3-й: Возможно, это не то, что вы хотите архивировать.Это может быть лучше:

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

Не забывайте, что разные операционные системы по-разному обрабатывают разрывы строк.Приведенный выше код должен заменить все разрывы строк, независимо от того, откуда они берутся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...