Я хочу обнаружить возврат каретки или символ новой строки, когда пользователь вводит данные в текстовое поле. Каков наилучший способ справиться с этим? Я попытался str_replace с escape-символами, но возврат каретки и строки новой строки не обнаружены.
ОК, скажем, я введу следующее в текстовое поле:
The summer was hot this year but next year is supposed to be cooler.
Я хочу обнаружить CR. В этом случае есть один.
Новые строки могут быть \ r, \ r \ n или \ n, в зависимости от клиента.
$input = preg_replace('/\r\n?/',"\n",$input)
будет стандартизировать все ваши новые строки в «\ n» независимо от того, откуда они пришли.
Вы можете сделать это так: str_replace:
function replace_newline($string) { return (string)str_replace(array("\r", "\r\n", "\n"), '', $string); }
Существует несколько способов сохранения новой строки. Некоторые системы используют только "\n"
некоторые "\r"
а некоторые "\r\n"
. Вам нужно проверить как "\r"
и "\n"
Попробуйте следующее. Для меня это всегда прелестно.
Вам нужно заменить \ n AND \ r, потому что система linux и система Windows используют разные символы для строк новой строки.
$input = str_replace(array("\n","\r"),'',$input);
Или проверьте на chr (10) и замените на это
Вы пробовали preg_replace
потому что это можно использовать для замены регулярных выражений, а затем вы можете заменить с помощью \n
или \r
или любую комбинацию, которая вам нужна, хотя я считаю, что str_replace также работает нормально.
function replace_newlines($string) { return preg_replace('/\r\n|\r|\n/', '', $string); }