Я хочу обнаружить возврат каретки или символ новой строки, когда пользователь вводит данные в текстовое поле. Каков наилучший способ справиться с этим? Я попытался 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); }