Mysql
 sql >> база данни >  >> RDS >> Mysql

Замяна на \r\n с PHP

Основният проблем, който имате с всички варианти, които сте опитвали, е, че и двете \n и \r са escape знаци, които се екранират само когато ги използвате в низ с двойни кавички .

В PHP има голяма разлика между '\r\n' и "\r\n" . Обърнете внимание на единичните кавички в първия и двойните кавички във втория.

И така:'\r\n' ще доведе до низ от четири знака, съдържащ наклонена черта, 'r', друга наклонена черта и 'n', докато "\r\n" ще съдържа два знака, като това са новият ред и символите за връщане на карета.

Така че директният отговор на въпроса ви е, че трябва да използвате втория от примерите, които сте дали във въпроса, но с двойни кавички вместо единични:

$text = str_replace("\r\n",'', $text);

Струва си да се отбележи, че това ще премахне всички нови редове от входа и ги заменете с нищо. Ако има повече от един нов ред във входа, всички те ще бъдат премахнати. Без да знам повече за приложението ви, не знам дали това е, което искате, но ето някои мисли:

  • Ако искате да премахнете само празни редове (и друго бяло пространство) от края от входния низ, можете да използвате trim() функция вместо това.

  • Ако искате да запазите форматирането за извеждане в HTML, тогава nl2br() функцията ще ви помогне. Ако искате да изведете в HTML без форматиране, тогава може да не е необходимо да ги премахвате, тъй като браузърът няма да изобразява прекъсвания на редове от \n символи.

  • Ако замените новите редове с нищо, според вашия пример, последната дума от първия ред вече ще работи директно в първата дума на втория ред и т.н. Може да предпочетете да ги замените с интервал, вместо с нищо.

  • Възможно е потребителите да изпращат въведените данни само с \n без съответстващия \r , или обратно (това може да се дължи на тяхната ОС или браузър, или на умишлен хак, или на редица други причини). Ако искате да замените всички екземпляри и на двата знака, по-надежден начин да го направите би бил да ги замените поотделно, вместо да разчитате, че са един до друг. str_replace() ви позволява да направите това, като ги посочите в масив. Можете също да използвате strtr() или preg_replace() за постигане на същата цел.

Надявам се това да помогне.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как трябва да се справя с --secure-file-priv в MySQL?

  2. SQL заявка, където полето НЕ съдържа $x

  3. MySQL заявка за присвояване на уникален произволен номер на всеки ред

  4. Изчислете възрастта въз основа на датата на раждане

  5. конвертирайте списъка в низ, за ​​да вмъкнете в моя sql на един ред в python scrapy