2016-01-20 7 views
-1

Скажем, у меня есть строка, как показано ниже $ comments = Windows Embedded Compact (Windows CE) или Windows Server. В состав семейства Defunct Windows входят Windows 9x и Windows Mobile. [CR] [LF] [CR] [LF] Microsoft представила операционную среду под названием Windows 20 ноября 1985 года как графическую оболочку операционной системы для MS-DOS в ответ на растущий интерес к графическим пользовательским интерфейсам (GUI) ,как управлять CRLF в php?

Примечание: [CR] [LF] добавляются вручную для вопроса. Я обнаружил эту проблему, когда любой пользователь копирует и вставляет любой html-контент в поле комментариев с текстовой областью комментариев, которое мы наблюдаем за этими элементами.

Есть ли способ, которым мы можем заменить их на \ n \ r в PHP.

Я пытался что-то вроде этого

$comments = preg_replace("/\r\n\r\n|\r\r|\n\n/", "<br />", $comments); 

он не давал мне никакого должного результата.

+0

Вы можете использовать ' '~ \ R ~ ''и замените на' \ n \ r', если вы планируете заменить каждую последовательность новой строки на '\ n \ r'. –

+0

Ваши требования не ясны. Пожалуйста, обновите вопрос о том, что вам нужно заменить. Я не знаю, какого «правильного» результата вы ожидаете. –

+0

Не могли бы вы дать нам некоторую обратную связь о том, что вы пробовали и какой результат? – hherger

ответ

0

Предполагая, что вы хотите заменить любые комбинации [CR] и [LF] по [CR] [LF] (т.е. \r\n, не \n\r), попробуйте следующее:

$string = ".....[CR].....[LF]...[CR][LF].....[CR][CR].......[LF][LF]......."; 
$result = preg_replace('/\r\n|\n\r|\r|\n/', '\r\n', $string); 
+0

@Wiktor: Спасибо, вы правы. Я обновлю пример. – hherger

+0

Тем не менее, неясно, правильно ли вы ответили или нет, так как вопрос непонятен. –

+0

Вот почему я сделал свое предположение ясным. – hherger