Я получаю значение описания продукта, хранящееся в базе данных, от admin через textarea после отправки формы.  Когда я выбираю описание из базы данных, я получаю $description = $row['description'];  и я хотел бы эхо $ description на главной странице следующим образом: echo nl2br($description);  но я вижу символы "\r\n" вместо создания новых строк.  Из того, что я нашел здесь и в сети, ваша строка должна использоваться между двойными кавычками, например: 
 echo nl2br("Hello, \r\n This is the description"); 
  Теперь значение $description из базы данных на самом деле "Hello, \r\n This is the description" но в моем сценарии я должен использовать его следующим образом: 
 echo nl2br($description); 
  Который не делает br's, вместо этого выводит \r\n .  Итак, что я могу сделать, я не могу использовать двойные кавычки здесь, по моему опыту. 
  Вы можете перевести их в соответствующие escape-последовательности перед передачей строки через nl2br() , например: 
 $description = nl2br(str_replace('\\r\\n', "\r\n", $description)); 
Но каковы буквальные побеги в вашей базе данных в первую очередь?
  Вы сохраняете буквальное значение \r\n в своей базе данных, а не фактические символы, которые они представляют. 
  Проверьте это в своей базе данных.  Если вы видите \r\n в поле описания, то вы, вероятно, избегаете обратную косую черту, когда вы храните данные. 
  Похоже, ваш текст содержит отдельные символы \ , r , \ и n и не содержит фактических символов новой строки.  Таким образом, str_replace() должен выполнить задание: 
 echo str_replace('\r\n', '<br>', $description); 
  Nl2br может взять второй (необязательный) аргумент для «is_xhtml», который преобразует \r\n в a для вас.  Просто измените свою линию на: 
 echo nl2br($description, TRUE);