Как удалить символы новой строки ASCII (nl) и символы возврата носителя (cr) из строки в php - PullRequest
0 голосов
/ 20 августа 2011

Мне нужно удалить и заменить символы новой строки ASCII (nl) и символы возврата носителя (cr) из строки php.

Я попытался с помощью следующего оператора заменить все символы ASCII (nl) из $ input на пустое место, но не сработало:

preg_replace('/[\x0a]+/',' ',$input);

Затем я попытался заменить все управляющие символы ASCII пробелами, следующее утверждение:

ereg_replace('[[:cntrl:]]', ' ', $encoded); // didn't work

Я попробовал также следующие утверждения, но не повезло с ними:

ereg_replace("[:cntrl:]", "", $pString);
preg_replace('/[\x00-\x1F\x7F]/', '', $input);
preg_replace('/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F]/', '', $input);

Что такое выражение регулярного выражения для удаления символов новой строки ASCII (nl) и символов возврата носителя (cr) из строки php?

Я ссылался на несколько ссылок ниже:
Таблица ASCII
Регулярные выражения
Регулярное выражение posix

Ответы [ 3 ]

4 голосов
/ 20 августа 2011

Разве вы не можете просто использовать str_replace ?

str_replace( array("\n", "\r"), "", $stringinput );
3 голосов
/ 20 августа 2011

Зачем использовать регулярное выражение?Что не так с

str_replace(array("\n", "\r"), "", $string);

?В PHP символы \ n и \ r гарантированно являются фактическими символами новой строки и возврата каретки: http://php.net/manual/en/language.types.string.php

1 голос
/ 20 августа 2011

, если вы настаиваете на использовании preg_replace() для такой простой задачи, вы можете использовать:

$result = preg_replace('/[\r\n]/', '', $subject);

Хотя вам следует использовать str_replace(array("\n", "\r"), "", $string);, как рекомендовано ранее.

...